舊系統維護久了難免會遇見程 SQL Injection 攻擊,真的遇上了。

這次是被透過一些駭客工具,透過該站台開放的 Web Service,利用 SQL Injection 手法所攻擊造成,紀錄本次修復方法,如下。

--透過下列指令,列出系統所有擴展預存程序
use master
EXEC sp_helpextendedproc

--sp_dropextendedproc 此為系統內建的移除擴展預存程序之功能,這次攻擊有被改寫,因此要先用dbcc指令移除並重建
dbcc dropextendedproc('sp_dropextendedproc')

--以下為此次攻擊被改寫的擴展預存程序,及其回復指令
--sp_OACreate
EXEC sp_dropextendedproc 'sp_OACreate'
EXEC sp_addextendedproc Sp_OACreate ,@dllname ='odsole70.dll' 

--xp_cmdshell C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll
EXEC sp_dropextendedproc 'xp_cmdshell'
EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll' 

--xp_dirtree  C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xpstar.dll
EXEC sp_dropextendedproc 'xp_dirtree'
EXEC sp_addextendedproc xp_dirtree ,@dllname ='xpstar.dll' 

--此為修改系統使用者密碼之功能,這次攻擊有被改寫,因此要移除後重建預存程序
EXEC sp_dropextendedproc 'sp_password'


參考資料:


Poy Chang

Trial and Error