实验环境
实验靶场
靶场:DVWA(low级别)
数据库:MySQL 5.7.26
Web脚本:PHP 7.3.4
WAF:阿里云Web应用防火墙
注:这里配置的是默认的中等规则组。假如WAF的规则过于严格,则会对业务的连续性产生影响,造成误报;假如WAF的规则过于宽松,则会被轻易绕过,产生漏报。做到二者之间的平衡是判断一款WAF是否好坏的一个重要标准。
Emoji字符绕过
这是一个有意思的案例,并且是当时影响了安全宝、阿里云盾的姿势,而且现在测试阿里云盾依然有效。
绕过原理
规则缺陷/特性:emoji的宽字节特性且mysql支持emoji的存储
emoji是一串unicode字集组成,一个emoji图标可以占2、4、7个字节。具体可以查看这篇文章:
https://www.jianshu.com/p/32a95a4fc542
Emoji表情搜索:https://emojipedia.org/
如图,一个?字符占4个字节长度
既然在查询的时候%23会忽略掉后面的,那么Emoji就可以插入到%23与%0A之间。
我们再来测试阿里云盾:
成功绕过了,让我们缩小一下emoji的范围,是不是每一个emoji都可以绕过呢?
看来并不是,这里可以对emoji进行FUZZ,查看具体是哪个emoji可以实现绕过
这里仅仅对941个emoji进行FUZZ,可以测试出能够绕过的emoji有:
?、?、?、?、?、?、?、?、☠、⚠️、?、?、?、???????、???????、???????
绕过成功!
推荐阅读:
Bypass阿里云盾、百度云加速、安全宝、安全狗、云锁、360主机卫士SQL注入防御
https://documentation.help/InfoSec-cn/55b41898-7649-40b7-8ee7-ab517fad48ac.htm
点赞,转发,在看
原创作者:Ulysses
内部学员投稿
原文始发于微信公众号(HACK学习呀):实战 | WAF-Bypass之SQL注入绕过阿里云盾