可能是一种通杀的waf bypass方式

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人收藏  收藏
分享漏洞:
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是一个字符类型注入的参数,此时我们去看下页面返回的结果

1111.png



发现结果中出现了乱码,感觉我的%a0和s一起被解析成了乱码。但是在mysql层面去执行的时候%0a又被当做空白符执行了,显示出来了我的mysql的版本和数据库名称,感觉碉堡了。



5:这样一来解析出来的结果岂不是bypass掉了无论是waf也好,还是应用程序本身的正则也好。



6:我们开启安全狗试试,先输入%0a查看安全是不是好使的:

22222.jpg



果然拦截了



7:此时将%0a换成%0a尝试一下:

3333.jpg



可以看到安全狗没有反应,显示出来了数据库的信息,因此看来至少可以搞定狗了,这样的web解析感觉其他的waf很有可能也会有类似的问题。

ps.会不会被雷p啊





漏洞证明:

7:此时将%0a换成%0a尝试一下:

3333.jpg

修复方案:

看着修吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值