*本文作者:zusheng,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。
前言
如今市面上的WAF几乎都已经具备了针对RCE攻击的防御能力,这些WAF并不是想象中毫无破绽,当Web服务器是Linux平台时我们就可以利用一些技巧来绕过WAF规则集。本文主要总结Linux平台下针对RCE WAF的绕过技巧,Windows平台不在本文考虑范围内。
0x01 技巧一:通配符
在bash的操作环境中有一个非常有用的功能,那就是通配符,下面列出一些常用的通配符:
我们可以使用通配符来执行命令,例如执行命令:
读取/etc/passwd:
NC反弹shell:
0x02 技巧二:连接符
在bash的操作环境中还有一个非常有用的功能,那就是连接符,例如:
你唯一需要注意的就是闭合,这点很重要,利用这个我们可以绕过一些匹配字符串的WAF规则。
读取/etc/passwd:
获取shell
检测NC:
没有NC的情况检查wget:
简单粗暴(容易被检查):
其他字符:
0x03 技巧三:未初始化的bash变量
在bash环境中允许我们使用未初始化的bash变量,如何
我们事先并没有定义它们,输出看看:
未初始化的变量值都是null。
读取/etc/passwd:
测试WAF
测试代码:
反弹shell:
执行:
成功:
0x04 总结
本文我们主要利用了bash的通配符、连接符、未初始化的变量三个特性来绕过WAF规则,当然你可能有更好的办法,欢迎大家补充,最后感谢乐于分享的安全研究员们,没他们的分享也不会有这么多技巧出现,谢谢分享。
*本文作者:zusheng,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。
领取专属 10元无门槛券
私享最新 技术干货