漏洞擴充: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 |
sp_dropextendedproc 'xp_cmdshell' |
xp_regaddmultistring |
sp_dropextendedproc 'xp_regaddmultistring' |
xp_regdeletekey |
sp_dropextendedproc 'xp_regdeletekey' |
xp_regdeletevalue |
sp_dropextendedproc 'xp_regdeletevalue' |
xp_regenumkeys |
sp_dropextendedproc 'xp_regenumkeys' |
xp_regenumvalues |
sp_dropextendedproc 'xp_regenumvalues' |
xp_regread |
sp_dropextendedproc 'xp_regread' |
xp_regremovemultistring |
sp_dropextendedproc 'xp_regremovemultistring' |
xp_regwrite |
sp_dropextendedproc 'xp_regwrite' |
ActiveX指令碼:
sp_OACreate |
sp_dropextendedproc 'sp_OACreate' |
sp_OADestroy |
sp_dropextendedproc 'sp_OADestroy' |
sp_OAMethod |
sp_dropextendedproc 'sp_OAMethod' |
sp_OAGetProperty |
sp_dropextendedproc 'sp_OAGetProperty' |
sp_OAGetErrorInfo |
sp_dropextendedproc 'sp_OAGetErrorInfo' |
sp_OAStop |
sp_dropextendedproc 'sp_OAStop' |
特別注意:刪除某些預存程序可能會導致網站的某些功能不能用,因此,建議先在master資料庫的擴充預存程序中把Public組的EXEC許可權去掉,這樣比較保險,如果沒問題再刪除,有問題則改需要改回去。