修改SQL SERVER內建預存程序
來源:互聯網
上載者:User
server|預存程序 SQLSERVER估計是為了安裝或者其它方面,它內建了一批危險的預存程序。能讀到註冊表資訊,能寫入註冊表資訊,能讀磁碟共用資訊等等……各位看到這兒,心裡可能會在想,我的網站中有其它的代碼,又不像查詢分析器那樣能直接將結果輸出。給你這個許可權,也不能怎麼樣,還是看不到資訊。如果各位這樣想就大錯特錯了。提示一下,如果攻擊者有CREATE TABLE的許可權,那麼建立一個暫存資料表,然後將資訊INSERT到表中,然SELECT出來,接著跟數字進行比較,讓SQL SERVER報錯,那麼結果就全出來了……所以我們要報著寧錯殺,不放過的態度進行修補。
先來列出危險的內建預存程序:
xp_cmdshell
xp_regaddmultistring
xp_regdeletekey
xp_regdeletevalue
xp_regenumkeys
xp_regenumvalues
xp_regread
xp_regremovemultistring
xp_regwrite
ActiveX自動指令碼:
sp_OACreate
sp_OADestroy
sp_OAMethod
sp_OAGetProperty
sp_OASetProperty
sp_OAGetErrorInfo
sp_OAStop
以上各項全在我們封殺之列,例如xp_cmdshell屏蔽的方法為:
sp_dropextendedproc 'xp_cmdshell'
如果需要的話,再用
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
進行恢複。如果你不知道xp_cmdshell使用的是哪個.dll檔案的話,可以使用
sp_helpextendedproc xp_cmdshel
來查看xp_cmdshell使用的是哪個動態聯結庫。另外,將xp_cmdshell屏蔽後,我們還需要做的步驟是將xpsql70.dll檔案進行