网站地图    收藏   

主页 > 后端 > 网站安全 >

无忧购物系统ASP专业版 SQL防注入绕过及修复 - 网

来源:自学PHP网    时间:2015-04-17 10:15 作者: 阅读:

[导读] 在果views.asp这个文件有问题,存在注入可以看到:hw_id=Request(hw_id)hw_id没有任何过滤,还是request请求,一看就鬼火,以前的老漏洞难道在新版本也没能很好的解决,或者根本没补漏洞跟进...

在果views.asp这个文件有问题,存在注入
 
可以看到:hw_id=Request("hw_id")
hw_id没有任何过滤,还是request请求,一看就鬼火,以前的老漏洞难道在新版本也没能很好的解决,或者根本没补漏洞
 
跟进代码
顺藤摸瓜最终在:sqlcheck.asp找到防注入代码
 
 
<% '防止Sql注入
On Error Resume Next
Fy_Url=Request.ServerVariables("QUERY_STRING")
Fy_a=split(Fy_Url,"&")
redim Fy_Cs(ubound(Fy_a))
On Error Resume Next
for Fy_x=0 to ubound(Fy_a)
Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)
Next
For Fy_x=0 to ubound(Fy_Cs)
If Fy_Cs(Fy_x)<>"" Then
If Instr(LCase(Request(Fy_Cs(Fy_x))),"'")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"and")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"select")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"update")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"insert")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 Then
response.Write "<script language='javascript'>alert('出现错误,请勿尝试类似操作!');history.go(-1);</script>"
Response.End
End If
End If
Next
#@~^RQEAAA==W!x^DkKxP7+ ^W9+c\xd4Kw#@#@&\x/4G24!Y{*@#@&WGMPr'8~YKPsn `\nUktGw*@#@&kW,:bN`7+ dtKwSkBFb@!@*J+J,Otx@#@&-nx{lkmc:r[v\nxk4Wa~rS8##R-xdtK2(EO@#@&b0P7+ @*Fyv~Y4+U@#@&\+ x\xOOX@#@&Vk+r0~-x@!&y~Y4+U@#@&\+Ux7+U_OX@#@&n N,k0@#@&7nxm'-+ l'^4D`7nx*@#@&sd+@#@&7+Ulx-xC[14DvFfb@#@&+U[,kW@#@&U6O@#@&7+x1W9n'7+Ul@#@&nU9P0!UmDkW W10AAA==^#~@
%>

 

 
用了Request.ServerVariables(”QUERY_STRING”)来接收的数据,但是直接将注入的字符URL编码是不行的
 
Request.ServerVariables(”QUERY_STRING”)是得到客户端提交的字符串,这里并不会自动转换url编码,如果我们把name进行url编码再提交的话,那就可以绕过了
直接hw_id改为hw_i%64就行,其他的照旧,就这么绕过了

修复方案:

进一步过滤

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论