相信很多asp+mssql的**都有被人注入過的經歷,資料庫表中多了一些表,類似以下的表d99_tmp,d99_cmd,kill_kk。
d99_tmp(subdirectory,depth,file三個字段,裡面的資料都是**檔案和目錄)
mssql資料庫存在幾個危險的擴充套件儲存過程,預設public組可執行許可權,sql注入者可利用此讀取檔案目錄及使用者組,並可通過先寫入資料庫然後匯出為檔案的方法往伺服器寫入危險指令碼進一步提權,或直接使用某些儲存過程執行命令,如xp_cmdshell。
xp_cmdshell可以讓系統管理員以作業系統命令列直譯器的方式執行給定的命令字串,並以文字行方式返回任何輸出,是乙個功能非常強大的擴充套件儲存過程。一般的黑客攻擊sql server時,首先採用的方法是執行master擴充套件儲存過程xp_cmdshell命令來破壞資料庫,為了資料庫安全起見,最好禁止使用xp_cmdshell.
一般情況下,xp_cmdshell對管理員來說也是不必要的,xp_cmdshell的消除不會對server造成任何影響。
可以將xp_cmdshell消除:
use master
exec sp_dropextendedproc n 'xp_cmdshell'
go 如果需要的話,可以把xp_cmdshell恢復回來:
use master
exec sp_addextendedproc n 'xp_cmdshell',n 'xplog70.dll'
go可以消除的儲存過程如下:
sp_makewebtask
xp_cmdshell
xp_dirtree
xp_fileexist
xp_terminate_process
sp_oamethod
sp_oacreate
xp_regaddmultistring
xp_regdeletekey
xp_regdeletevalue
xp_regenumkeys
xp_regenumvalues
sp_add_job
sp_addtask
xp_regread
xp_regwrite
xp_readwebtask
xp_makewebtask
xp_regremovemultistring
對應措施:刪除上述儲存過程或可執行檔案或修改儲存過程相應使用者組可執行許可權,刪除上述儲存過程對應指令碼為:
drop procedure sp_makewebtask
exec master..sp_dropextendedproc xp_cmdshell
exec master..sp_dropextendedproc xp_dirtree
exec master..sp_dropextendedproc xp_fileexist
exec master..sp_dropextendedproc xp_terminate_process
exec master..sp_dropextendedproc sp_oamethod
exec master..sp_dropextendedproc sp_oacreate
exec master..sp_dropextendedproc xp_regaddmultistring
exec master..sp_dropextendedproc xp_regdeletekey
exec master..sp_dropextendedproc xp_regdeletevalue
exec master..sp_dropextendedproc xp_regenumkeys
exec master..sp_dropextendedproc xp_regenumvalues
exec master..sp_dropextendedproc sp_add_job
exec master..sp_dropextendedproc sp_addtask
exec master..sp_dropextendedproc xp_regread
exec master..sp_dropextendedproc xp_regwrite
exec master..sp_dropextendedproc xp_readwebtask
exec master..sp_dropextendedproc xp_makewebtask
exec master..sp_dropextendedproc xp_regremovemultistring
資料庫中如發現d99_tmp或者d99_cmd資料表,請先通知**管理員修補sql注入漏洞,該錶為某sql注入工具預設自增表(啊d),內容為c盤目錄下全部檔案及資料夾名稱,伺服器網管應檢查xp_dirtree擴充套件儲存過程許可權,設定為public組不可讀即可防止惡意訪客讀取本地檔案資訊,或刪除xp_dirtree儲存過程或刪除xpstar.dll檔案,該檔案位於sql安裝目錄下。對應指令碼為:
exec sp_addextendedproc xp_dirtree ,@dllname ='xpstar.dll'
exec sp_addextendedproc xp_fileexist ,@dllname ='xpstar.dll'
除了禁止上面的儲存過程執行外,對**引數都要嚴格過濾,最好是加個通用的防注入的**到資料庫連線裡,實行全站防注入。
除此之外,要是用了網頁編輯器之類的如ewebeditor還要對上傳漏洞進行修改修補。
最後一定要經常對**進行備份,萬一出現問題可以將損失降到最低。
發現資料庫中有D99 Tmp表的應對方法
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...
MS SQL 資料庫狀態為SUSPECT的處理方法
當sql server資料庫狀態為質疑 suspect 狀態時,我們可以用以下方法來處理 1.修改資料庫為緊急模式 alter database dbname set emergency 2.檢查資料庫的完整性 dbcc checkdb dbname 3.檢查沒有錯誤則恢復資料庫為正常模式 alte...
資料庫知識部分討論中發現的知識空缺
一 所有的候選碼都不能有冗餘,即乙個候選碼不能含有多餘的屬性 二 五種基本關係代數運算 1 並2 差 3 廣義笛卡爾積 4 投影 5 選擇 三 擴充套件的關係代數運算 1 交2 連線 連線 等值連線 自然連線 3 除4 廣義投影 允許在投影列表中使用算術運算 5 外連線 左外連線 右外連線 全外連線...