威凡网全力打造:网页编程、软件开发编程、平面设计、服务器端开发、操作系统等在线学习平台!学编程,上威凡网!
ASP教程>> ASP基础 应用技巧 数据库相关 ASP类 存储过程 FSO专栏 ASP其他
当前位置:首页 > 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注入的特性(会包括<script、</script>和http://这样的字符),在conn.asp里面放入如下代码:

function cheack_sqljs()'防止数据库外链js注入:true为发现外链js注入。 
 
dim f_post,f_get 
 
cheack_sqljs=false 
 
if request.form<>"" then'表单提交时的检测for each f_post in request.form if (instr(lcase(request.form(f_post)), 
 
"<script")<>0 or instr(lcase(request.form(f_post)),"</script>")<>0)  
 
and instr(lcase(request.form(f_post)),"http://")<>0 then 
 
cheack_sqljs=true 
 
exit for 
 
end if 
 
next 
 
end if 
 
if request.querystring<>"" then'querystring提交时的检测for each f_get in request.querystring  
 
if (instr(lcase(request.form(f_get)),"<script")<>0 orinstr(lcase(request.form(f_get)),"</script>")<>0)  
 
and instr(lcase(request.form(f_get)),"http://")<>0 then 
 
cheack_sqljs=true 
 
exit for 
 
end if 
 
next 
 
end if 
 
end function 
 
function checkdatafrom()'检查提交数据来源:true为数据从站外提交过来的 
 
checkdatafrom=true 
 
server_v1=cstr(request.servervariables("http_referer")) server_v2=cstr(request.servervariables("server_name"))  
 
if mid(server_v1,8,len(server_v2))<>server_v2 then 
 
checkdatafrom=false 
 
end if 
 
end function 
 
if cheack_sqljs or checkdatafrom then 
 
response.write "<script language=javascript>alert('禁止执行,非法操作。');</script>" response.end() 
 
end if 

关于asp数据库被挂木马时的编程处理方法就介绍到这里了,希望本次的介绍能够带给您一些收获,谢谢!


申明:本教程内容由威凡网编辑整理并提供IT程序员分享学习,如文中有侵权行为,请与站长联系(QQ:254677821)!
上一节 下一节
相关教程  
其他教程  
ASP基础
应用技巧
数据库相关
ASP类
存储过程
FSO专栏
ASP其他

违法和不良信息举报中心】邮箱:254677821@qq.com
Copyright©威凡网 版权所有 苏ICP备2023020142号
站长QQ:254677821