注册 登录
编程论坛 网络技术

Asp防注入代码[转自网络]

SUNZN 发布于 2007-10-19 18:27, 2136 次点击


这是转的网络上的防注入代码!稍微的修改了一下!代码也很容易懂.只要来个包含或放入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的管理员,那我就不说了.多少还能挽回点被记录的损失!

13 回复
#2
lthiy2007-10-20 22:30
没看懂
#3
追寻完美2007-10-21 00:31
恩,有用,记下了
#4
SUNZN2007-10-22 12:39
回复:(lthiy)没看懂[em04]

呵呵!这是通用的注入代码.我想你学了html和script的话,应该能看的懂的!
这对于写网站的程序员来说是安全方面的必备的知识,同时也是网站安全的保障!

#5
baiwbj2008-05-10 12:38
好东西,顶了!
#6
mustcome2008-05-10 18:31
顶了
#7
AaronWoo2008-05-24 17:00
很有用!不错
#8
jshf19882008-05-24 18:09
i
没看懂的
#9
lly320567012008-06-13 22:09
很有用!不错
#10
烤野猪2008-06-27 18:18
恩,有用,记下了
#11
hetiangan2008-06-30 15:11
这是什么语言编的啊
#12
ncnongmin2008-07-02 16:31
放在config.asp里吧~~也无所谓了
#13
dogdays2008-07-03 14:38
有用,先收藏下.
1