这是转的网络上的防注入代码!稍微的修改了一下!代码也很容易懂.只要来个包含或放入conn.asp中就可以了!
<%
’’’’--------------定义部份------------------
Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr
’’’’自定义需要过滤的字串,用 "|" 分隔
Fy_In = "’’’’|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|<|>|=|||-|_"
Fy_Inf = split(Fy_In,"|")
If Request.Form<>"" Then
For Each Fy_Post In Request.Form
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then
Response.Write "<Script Language=JavaScript>alert("请不要在参数中包含非法字符尝试注入攻击本站!");</Script>"
Response.Write "非法操作!本站已经给您做了如下记录↓<br>"
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>"
Response.Write "操作时间:"&Now&"<br>"
Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>"
Response.Write "提交方式:POST<br>"
Response.Write "提交参数:"&Fy_Post&"<br>"
Response.Write "提交数据:"&Request.Form(Fy_Post)
Response.End
End If
Next
Next
End If
If Request.QueryString<>"" Then
For Each Fy_Get In Request.QueryString
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then
Response.Write "<Script Language=JavaScript>alert("请不要在参数中包含非法字符尝试注入攻击本站!");</Script>"
Response.Write "非法操作!本站已经给大侠您做了如下记录↓<br>"
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>"
Response.Write "操作时间:"&Now&"<br>"
Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>"
Response.Write "提交方式:GET<br>"
Response.Write "提交参数:"&Fy_Get&"<br>"
Response.Write "提交数据:"&Request.QueryString(Fy_Get)
Response.End
End If
Next
Next
End If
%>
我想很多朋友在试图不论是用[or=or]或者是[and 1=1;and 1=2]注入站点的时候都会经常遇到上面那样既熟悉又郁闷的代码吧!
Response.Write "非法操作!本站已经给大侠您做了如下记录↓<br>"
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>"
Response.Write "操作时间:"&Now&"<br>"
Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>"
Response.Write "提交方式:GET<br>"
Response.Write "提交参数:"&Fy_Get&"<br>"
Response.Write "提交数据:"&Request.QueryString(Fy_Get)
至少我是很熟悉了!但是大家看到最前面的自定义需要过滤的字串了吗?往下看,那是最重要的东西,比如说其中的select.这个语句经常在SQL语句中要用到,也是啊D或者是明小子工作最重要的一个词.也就是说只要有这些字符的都会被视为非法操作.防注入程序就是这样来判别交互操作的合法性的.那我们只要在被网站记录后,根据返回页面的显示内容找到相应的防注入代码,只要分析自定义需要过滤的字串就可以了!分析它还有什么特殊的攻击字符没有过滤,我们可以试着用它没有过滤掉的字符来注入!因为现在的网络管理员一般都是从网络上找代码,然后稍做修改就使用了!如果要是遇到只会编辑word的管理员,那我就不说了.多少还能挽回点被记录的损失!