设为首页
|
加入收藏
|
繁體中文
|
网站地图
|
网站首页
|
新闻中心
|
病毒·漏洞
|
攻防分析
|
网吧专题
|
下载中心
|
论坛
|
网上报警
|
最 新 推 荐
没有推荐文章
最 新 热 门
·
电脑安全优化技巧大全(七节版
·
关于黑客入侵网络的证据收集与
·
防止黑客入侵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号