可能是一种通杀的waf bypass方式
2015-01-05 15:34
495 查看
http://www.wooyun.org/bugs/wooyun-2014-089426
漏洞概要关注数(76) 关注此漏洞
缺陷编号:
WooYun-2014-89426
漏洞标题: 可能是一种通杀的waf bypass方式(安全狗实例)
相关厂商:
安全狗
漏洞作者:
MayIKissYou
提交时间: 2014-12-31 10:52
公开时间: 2015-01-05 10:54
漏洞类型: 设计缺陷/逻辑错误
危害等级: 高
自评Rank: 15
漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org
Tags标签:
设计错误
6人收藏 收藏
分享漏洞:
![](http://bdimg.share.baidu.com/static/images/type-button-5.jpg)
1
漏洞详情
披露状态:
2014-12-31: 细节已通知厂商并且等待厂商处理中2015-01-05: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
由于某些字符处理不好,可能导致所有的waf bypass。
详细说明:
ps.这种类型厂商不知道提给谁,提给wooyun不被X吧1:一般所有的waf在做sql防注入的时候都会对sql注入的union注入方式防的死死的,大致模型是这样的:
code 区域
select id from table where x = 1 union select 1,2 from dual
各家对于此处的防范各有不同,但是防范的都很好。
2:在mysql里面有一个空白符为%a0,此符号为空白符。
3:但是%a0是扩展字符里面的,当%a0+另外一个字符,可能会在web层面解析的时候出现意想不到的结果。
4:手上有安全狗,拿安全狗测试了,首先关闭安全狗的服务,我们在url中输入以下url:
code 区域
http://192.168.4.70/low.php?id=11' union%a0select version(),database() %23&Submit=a
首先我的id是一个字符类型注入的参数,此时我们去看下页面返回的结果
![](http://static.wooyun.org/wooyun/upload/201412/30224614b756ed9242e9c6072242f90ee235861f.png)
发现结果中出现了乱码,感觉我的%a0和s一起被解析成了乱码。但是在mysql层面去执行的时候%0a又被当做空白符执行了,显示出来了我的mysql的版本和数据库名称,感觉碉堡了。
5:这样一来解析出来的结果岂不是bypass掉了无论是waf也好,还是应用程序本身的正则也好。
6:我们开启安全狗试试,先输入%0a查看安全是不是好使的:
![](http://static.wooyun.org/wooyun/upload/201412/30225034d2829608e1a0da8a455f94869bbf6d62.jpg)
果然拦截了
7:此时将%0a换成%0a尝试一下:
![](http://static.wooyun.org/wooyun/upload/201412/30225203459cf4a74d193d758e424b30c6a69e50.jpg)
可以看到安全狗没有反应,显示出来了数据库的信息,因此看来至少可以搞定狗了,这样的web解析感觉其他的waf很有可能也会有类似的问题。
ps.会不会被雷p啊
漏洞证明:
7:此时将%0a换成%0a尝试一下:![](http://static.wooyun.org/wooyun/upload/201412/30225203459cf4a74d193d758e424b30c6a69e50.jpg)
修复方案:
看着修吧
相关文章推荐
- 一种可能的SQL脚本管理方式
- python中一种完全可能情况带入计算的处理方式
- java.lang.UnsatisfiedLinkError,findLibrary returned null的一种可能的解决方式
- ActionContext.getContext()传值的三种方式,和session取到值而request去不到值的一种可能
- 换个角度看敏捷1 - 或许可能可以把敏捷看作一种问题解决方式
- System Error Code 111 The file name is too long的一种可能的解决方式
- 将n个相异的球按每小组m个球进行分组,不足m个的也算一个小组。输出所有可能的分组方式;对其中的一种分组方式,都指明每个小组包含的球的情况!
- Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
- PostCSS一种更优雅、更简单的书写CSS方式
- 延云YDB基于spark进行数据分析的一种新方式
- 一种通过async/await实现函数同步执行的方式
- AIX 上总有一种压缩方式适合你
- 多对多查询方式的一种写法
- ORACLE 存储过程中保存用户自定义异常信息的一种方式
- Javascript的一种代码结构方式——插件式
- js document.getElementIdBy 取不到值的一种可能 onLoad
- python 元类型编程, 单例模式SingleTon的一种实现方式
- 你可能不知道的5种 CSS 和 JS 的交互方式
- String内存溢出异常(错误)可能的原因及解决方式
- 19. Unity NGUI-屏幕自适应,最简单的一种实现方式