发布时间:2011-06-26 05:13:06作者:知识屋
先来说URL编码,%加两位的16进制表示一个字符,比如’经过编码之后就是%27,这是人人都知道的URL编码规则,UrlUnescapeInPlace之类的API函数甚至于程序员自己写的URL译码函数都是基于这一思想。
然而,我们何必如此听话,试想一下要是%后跟的不是16进制数字而是像abc%hh会发生什么事呢。先看UrlUnescapeInPlace,
写个小程序试一下,abc%hh经过译码还是abc%hh;再看asp.dll是怎么 译码的,在asp页面中写入 response.Write(request.QueryString("str")),然后用?str=abc%hh访问它,页面显示abchh,它 直接把%给去掉了。
现在来思考要是我们提交sele%ct,信息监控系统得到的字符串还是 sele%ct,当然它不是危险字符,它就不会拦截,但对于ASP,它得到的可就是select了,其它的同理,’可用%’表示,比如and exists(select * from admin)可转化为以下字符串a%nd ex%ists(%select * %from ad%min)。此方法可举一反三,比如用%%代替%都可以,还可以是其它的,具体的可以去看RFC2396。
以上仅是对于GET方式的分析,POST没试过,不过猜想也是可以的。并且经测试以上方法对目前的所有IIS防火墙都有效,包括VIF。
补充:其实发现这个漏洞已经有好些日子了,本来我是不想公开的,前些天两次给一流信息 监控的人发邮件提醒他们,但他们就是没认真考虑我说的问题,还说一流信息系统可以把经过编码的注入字符也加到过滤清单中,不知道他们是怎么想的,他是觉得 再加一条sele%ect过滤规则就可以了?那sele%%ct呢,也加上?那sele%%%ct呢??鉴于一流这种无所谓的态度我就公开此漏洞,希望他 们能以此为鉴。
2011-07-02
黑客基础教程之如何查看论坛隐藏贴(怎么查看论坛隐藏贴)
一个黑客所需的基本技能
黑客基础教程之如何查看电脑配置(怎么查看自己的电脑配置)
怎么取消开机密码
什么是肉鸡,如何避免电脑成为肉鸡?
一名初级黑客所必须掌握的基本技能
电脑常见安全隐患,你知道吗?
黑客基础教程之黑客入侵渗透教程
【注意】QQ密码本地破解的原理和方法