熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP數據庫被掛馬的編程處理方法

2013-11-13 10:40:02  來源: .NET編程 

  數據庫被掛馬我相信很多人都碰到過在這裡我講下我處理的方法

  第一步為現有數據庫做好備份

  第二步執行如下ASP文件這樣就可以去掉數據庫當中的JS木馬

  注connasp自己去寫了

  這裡放入JS木馬內容請記得改為自己數據庫中的JS木馬內容

  <!#include file="connasp">

  <%

  ServerScriptTimeOut= Set rstSchema = connOpenSchema()

  k=

  Do Until rstSchemaEOF 遍歷數據庫表

  If rstSchema("TABLE_TYPE")="TABLE" Then

  responsewrite K&"<font color=red><b>"&rstSchema("TABLE_NAME") & "</b></font>:" 顯示表名Set rs=ServerCreateObject("ADODBRecordset")

  sql="select * from [" & rstSchema("TABLE_NAME")&"]"

  rsopen sqlconn For i= to rsfieldscount 遍歷表中字段If int(rs(i)Type)= or int(rs(i)Type)= or int(rs(i)Type)= or int(rs(i)Type)= or int(rs(i)Type)= or int(rs(i)Type)= Then只處理字段類型為字符型的字段

  connexecute("update ["&rstSchema("TABLE_NAME")&"] set "&rs(i)name&" =replace(cast("&rs(i)name&" as varchar())這裡放入JS木馬內容)") responsewrite rs(i)name &" "&rs(i)Type &" "顯示執行過的字段名

  End If

  Next

  responsewrite "<br>"

  End If

  rstSchemaMoveNext

  k=k+

  Loop

  responseWrite "執行成功"

  %>

  如果數據庫表很多的話上面的遍歷數據庫結構未執行完就被IIS給停止了在這時候可以在

  If rstSchema("TABLE_TYPE")="TABLE" Then

  當中適當加入k值的范圍

  If rstSchema("TABLE_TYPE")="TABLE" k> and k< Then

  這樣的話就一次只操作個表

  第三步

  根據數據庫JS注入的特性(會包括<script</script>和http://這樣的字符)在connasp裡面放入如下代碼

  Function Cheack_Sqljs()防止數據庫外鏈JS注入:true為發現外鏈JS注入

  Dim F_PostF_Get

  Cheack_Sqljs=False

  If RequestForm<>"" Then表單提交時的檢測For Each F_Post In RequestForm If (Instr(LCase(RequestForm(F_Post))"<script")<> or Instr(LCase(RequestForm(F_Post))"</script>")<>) and Instr(LCase(RequestForm(F_Post))"http://")<> Then

  Cheack_Sqljs=True

  Exit For

  End If

  Next

  End If

  If RequestQueryString<>"" ThenQueryString提交時的檢測For Each F_Get In RequestQueryString If (Instr(LCase(RequestForm(F_Get))"<script")<> or Instr(LCase(RequestForm(F_Get))"</script>")<>) and Instr(LCase(RequestForm(F_Get))"http://")<> Then

  Cheack_Sqljs=True

  Exit For

  End If

  Next

  End If

  End Function

  Function CheckDataFrom()檢查提交數據來源True為數據從站外提交過來的

  CheckDataFrom=True

  server_v=Cstr(RequestServerVariables("HTTP_REFERER")) server_v=Cstr(RequestServerVariables("SERVER_NAME")) if mid(server_vlen(server_v))<>server_v then

  CheckDataFrom=False

  end if

  End Function

  If Cheack_Sqljs or CheckDataFrom Then

  ResponseWrite "<Script Language=JavaScript>alert(禁止執行非法操作);</Script>" ResponseEnd()

  End If

  
 


From:http://tw.wingwit.com/Article/program/net/201311/14256.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.