当前位置:七道奇文章资讯安全技术网络技术
日期:2009-06-22 13:53:00  来源:本站整理

对特别字符的过滤[网络技术]

赞助商链接



  本文“对特别字符的过滤[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
我们常常看到的某某版的通用防注入的程序都是对注入的关键字举行过滤的,比方";|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|’","|""一类,不过这套程序却对特别字符举行了过滤,解析下来这样的过滤办法就安全的多了. 
因为我们注入的时刻构造语句一定要包含上面的一些特别字符的,大家可以想想经典的注入语句,我就捡关键的给大家提个醒"and (select asc(mid(pass,1,1)) from [name] where id=1)>49"(不包含双引号),这条语句可以猜想用户名大概密码,可以说是注入ACCESS数据库的核心语句了,我们看看都是什么字符触到了RSQL()函数的把柄,有"(",")","[","]",">"那么经过RSQL() 函数过滤之后剩下的就成了"and select ascmidpass,1,1 from name where id=149",同学们看到了吧,这样的语句是不大概猜解出什么来的.并且我们也不能通过转换大小写大概用插入TAB键之类的方法来绕过(这不是废话啊!谁据说过给特别字符转换大小写,往中间加东西的),我也试着把特别字符用url编码来绕过,不过后来才知道关于Request.QueryString(),Request.form()接纳之后的参数会把编码复原回本来的模样再赋值给变量的,关于若何绕过过滤举行注入的办法网上目前还没有,也没据说过哪位牛人能摆平了,并且这个函数还可以过滤跨站语句的,是不是一举多得啊,既玲珑又实用(打广告啊!).是不是很利害啊. 

public Function RSQL(strChar) 
         If strChar = "" Or IsNull(strChar) Then RSQL = "":Exit Function 
         Dim strBadChar, arrBadChar, tempChar, I 
         strBadChar = "$,#,’,%,^,&,?,(,),<,>,[,],{,},/,\,;,:," & Chr(34) & "," & Chr(0) & ""’注意这里过滤的是特别字符     ‘Chr(34)对应的ASCII码是双引号.Chr(0)其实就是我们上传改包把空格(20)改成的00 
         arrBadChar = Split(strBadChar, ",") 
         tempChar = strChar 
         For I = 0 To UBound(arrBadChar) 
                 tempChar = Replace(tempChar, arrBadChar(I), "")   ‘将特别字符过滤为空 
         Next 
         RSQL = tempChar 
End Function

  以上是“对特别字符的过滤[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 对特别字符的过滤
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .