我們在用ASP連接數據庫開發應用程序時,可能會遇到ASP數據庫被掛木馬的情況,本文我們就介紹了ASP數據庫被掛木馬時的編程處理方法,希望會對您有所幫助。
本文我們詳細介紹了ASP數據庫被掛木馬的詳細解決方案之編程處理的方法,解決方案分為以下三步:
第一步:
為現有數據庫做好備份。
第二步:
執行如下ASP文件,這樣就可以去掉數據庫當中的JS木馬:
注:conn.asp自己去寫了。
'這里放入JS木馬內容:請記得改為自己數據庫中的JS木馬內容。
- <!--#include file="conn.asp"-->
- <%
- Server.ScriptTimeOut=180 Set rstSchema = conn.OpenSchema(20)
- k=1
- Do Until rstSchema.EOF '遍歷數據庫表
- If rstSchema("TABLE_TYPE")="TABLE" Then
- response.write K&".<font color=red><b>"&rstSchema("TABLE_NAME") & "</b></font>:" '顯示表名Set rs=Server.CreateObject("ADODB.Recordset")
- sql="select * from [" & rstSchema("TABLE_NAME")&"]"
- rs.open sql,conn,1,3 For i=0 to rs.fields.count-1 '遍歷表中字段If int(rs(i).Type)=129
- or int(rs(i).Type)=130 or int(rs(i).Type)=200 or int(rs(i).Type)=201 or int(rs(i).Type)=202 or int(rs(i).Type)=203 Then'只處理字段類型為字符型的字段
- conn.execute("update ["&rstSchema("TABLE_NAME")&"] set "&rs(i).name&" =replace(cast("&rs(i).name&"
- as varchar(8000)),'這里放入JS木馬內容','')") response.write rs(i).name &" "&rs(i).Type &" "'顯示執行過的字段名。
- End If
- Next
- response.write "<br>"
- End If
- rstSchema.MoveNext
- kk=k+1
- Loop
- response.Write "執行成功"
- %>
如果數據庫表很多的話,上面的遍歷數據庫結構未執行完就被IIS給停止了。在這時候可以在:
If rstSchema("TABLE_TYPE")="TABLE" Then
當中適當加入k值的范圍,如:
If rstSchema("TABLE_TYPE")="TABLE" k>10 and k<20 Then
這樣的話就一次只操作9個表。
第三步:
根據數據庫JS注入的特性(會包括
新聞熱點
疑難解答