SUNZN 发表于 2007-10-19 18:27

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

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

lthiy 发表于 2007-10-20 22:30

没看懂[em04]

追寻完美 发表于 2007-10-21 00:31

恩,有用,记下了

SUNZN 发表于 2007-10-22 12:39

回复:(lthiy)没看懂[em04]

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

baiwbj 发表于 2008-5-10 12:38

好东西,顶了!

mustcome 发表于 2008-5-10 18:31

顶了

AaronWoo 发表于 2008-5-24 17:00

很有用!不错

jshf1988 发表于 2008-5-24 18:09

i

没看懂的

lly32056701 发表于 2008-6-13 22:09

很有用!不错

烤野猪 发表于 2008-6-27 18:18

恩,有用,记下了

hetiangan 发表于 2008-6-30 15:11

这是什么语言编的啊
[em20]

ncnongmin 发表于 2008-7-2 16:31

放在config.asp里吧~~也无所谓了

dogdays 发表于 2008-7-3 14:38

有用,先收藏下.

页: [1]

编程论坛