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

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

2022-06-13   來源: ASP編程 

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

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

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

  注connasp自己去寫了

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

  !#include file=connasp

  %

  ServerScriptTimeOut= Set rstSchema = connOpenSchema()

  k=

  Do Until rstSchemaEOF 遍歷數據庫表

  If rstSchema(TABLE_TYPE)=TABLE Then

  responsewrite Kfont color=redbrstSchema(TABLE_NAME)  /b/font: 顯示表名Set rs=ServerCreateObject(ADODBRecordset)

  sql=select * from [  rstSchema(TABLE_NAME)]

  rsopen sqlconn For i= to unt 遍歷表中字段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和裡面放入如下代碼

  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))//) 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) orInstr(LCase(RequestForm(F_Get))/script)) and Instr(LCase(RequestForm(F_Get))//) 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=JavaScriptalert(禁止執行非法操作);/Script ResponseEnd()

  End If


From:http://tw.wingwit.com/Article/program/ASP/201405/30969.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.