⊕ 网站首页 ⊕注册会员 ⊕ 本站免费电影 ⊕ 留言板 ⊕ 繁體中文
FireFox被突破 儿童可获Firefox浏览器下载量突破EasyShare v1.3突破电信IE7.0浏览器用户量突破3Leopard上市3天销量突破微软官方:Vista销量突破微软WGA正版验证次数已经Firefox下载量突破3亿人IE 7.0浏览器安装量突破IE 7发布4天 下载突破30
先来说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呢??鉴于一流这种无所谓的态度我就公开此漏洞,希望他们能以此为鉴。
【责任编辑 徐洋】
| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 |
Copyright © 2007 - 2009 chenpeng123.com All Rights Reserved 本站所有文章,软件等均来自网络收集,不代表本站观点,仅供学习和研究使用。如有侵犯您的版权,请联系我们,本站将立即删除。 鲁ICP备07014697号 你是本站第 位访客