漏洞扩展:xp_dirtree储存过程
事前:最近发现⼀个漏洞是sql服务器造成的,前⼏天正好没有什么事情,就⽤阿d的sql注⼊⼯具对⾃⼰服务器的⽹站进⾏注⼊,偶然发现了使⽤mssql的⽹站浸染可以利⽤sql注⼊的形式得到整个服务器上所有⽬录(我的服务器作了安全设置的)依然可以看见,然后在服务器上安装了⼀个抓包⼯具对sql server进⾏抓包发现,使⽤⼯具连接sql漏洞xp_dirtree读取⽬录,可获得整个服务器⽬录,如列出c盘⽬录他会把你c盘下的所有⽬录列出来,这样是很不安全的,⽬前是只可以查处⽬录上穿东西,⼤家可以设想⼀下,如果我随意修改⼀个boot.ini覆盖了c盘的boot.ini是⼀个什么概念,呵呵⾸先可以导致服务其瘫痪,⽆法读取系统。
解决⽅案:删除xp_dirtree,命令是sp_dropextendedproc 'xp_dirtree'
删除了以上的那个组建您在使⽤阿d或者任何的sql注⼊⼯具都是⽩搭,在这⾥也给⼤家提供⼀些其他sql危险的储存过程,建议删除。[注意:所有删除sql储存过程的操作必须在mssql查询分析器⾥操作,下⾯哪些前⾯的是储存过程的名字后⾯是删除储存过程的命令]先来列出危险的内置存储过程:
xp_cmdshell xp_regaddmultistring xp_regdeletekey xp_regdeletevalue xp_regenumkeys xp_regenumvalues xp_regread
xp_regremovemultistring xp_regwrite
ActiveX脚本:
sp_dropextendedproc 'xp_cmdshell' sp_dropextendedproc 'xp_regaddmultistring' sp_dropextendedproc 'xp_regdeletekey' sp_dropextendedproc 'xp_regdeletevalue' sp_dropextendedproc 'xp_regenumkeys' sp_dropextendedproc 'xp_regenumvalues' sp_dropextendedproc 'xp_regread'
sp_dropextendedproc 'xp_regremovemultistring' sp_dropextendedproc 'xp_regwrite'
sp_OACreate sp_OADestroy sp_OAMethod sp_OAGetProperty sp_OAGetErrorInfo sp_OAStop
sp_dropextendedproc 'sp_OACreate' sp_dropextendedproc 'sp_OADestroy' sp_dropextendedproc 'sp_OAMethod' sp_dropextendedproc 'sp_OAGetProperty' sp_dropextendedproc 'sp_OAGetErrorInfo' sp_dropextendedproc 'sp_OAStop'
特别注意:删除某些存储过程可能会导致⽹站的某些功能不能⽤,因此,建议先在master数据库的扩展存储过程中把Public组的EXEC权限去掉,这样⽐较保险,如果没问题再删除,有问题则改需要改回去。
因篇幅问题不能全部显示,请点此查看更多更全内容