设为首页 | 加入收藏 | 繁體中文 | 网站地图
 | 网站首页 | 新闻中心 | 病毒·漏洞 | 攻防分析 | 网吧专题 | 下载中心 | 论坛 | 网上报警 | 
最 新 推 荐
  • 没有推荐文章
  • 最 新 热 门
    ·电脑安全优化技巧大全(七节版
    ·关于黑客入侵网络的证据收集与
    ·防止黑客入侵ADSL的一些技巧
    ·计算机软硬故障之启动篇简析
    ·千兆应用入侵防护系统保护解决
    ·防止黑客入侵ADSL的一些技巧
    ·阿江的Windows服务器安全设置攻
    ·安全要主动,入侵检测精品推荐
    ·内核处理信号对应用层堆栈的影
    ·Win2000 Server入侵监测

     您现在的位置: 中国网络信息安全联盟 >> 攻防分析 >> 入侵检测 >> 正文
    突破一流信息监控系统等IIS防火墙实现注入 【字体:
    作者:无心   文章来源:互联网络      
    先来说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呢??鉴于一流这种无所谓的态度我就公开此漏洞,希望他们能以此为鉴。
     
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    设为首页 / 加入收藏 / 联系站长 / 友情链接 / 版权申明
    信息产业部备案序列号:沪ICP备05030014号