【转】命令执行WAF绕过技巧总结

前言

如今市面上的WAF几乎都已经具备了针对RCE攻击的防御能力,这些WAF并不是想象中毫无破绽,当Web服务器是Linux平台时我们就可以利用一些技巧来绕过WAF规则集。本文主要总结Linux平台下针对RCE WAF的绕过技巧,Windows平台不在本文考虑范围内。

0×01 技巧一:通配符

在bash的操作环境中有一个非常有用的功能,那就是通配符,下面列出一些常用的通配符:

我们可以使用通配符来执行命令,例如执行命令:

使用通配符来执行命令

读取/etc/passwd:

读取/etc/passwd

NC反弹shell:

NC反弹shell

NC反弹shell

0×02 技巧二:连接符

在bash的操作环境中还有一个非常有用的功能,那就是连接符,例如:

你唯一需要注意的就是闭合,这点很重要,利用这个我们可以绕过一些匹配字符串的WAF规则。

读取/etc/passwd:

读取/etc/passwd

获取shell

检测NC:

检测NC

没有NC的情况检查wget:

没有NC的情况检查wget

简单粗暴(容易被检查):

其他字符:

其他字符

反斜杆

0×03 技巧三:未初始化的bash变量

在bash环境中允许我们使用未初始化的bash变量,如何

我们事先并没有定义它们,输出看看:

未初始化的变量值都是null。

读取/etc/passwd:

读取/etc/passwd

测试WAF

测试代码:

测试WAF

测试代码

反弹shell:

执行:

执行

成功:

成功

0×04 总结

本文我们主要利用了bash的通配符、连接符、未初始化的变量三个特性来绕过WAF规则,当然你可能有更好的办法,欢迎大家补充,最后感谢乐于分享的安全研究员们,没他们的分享也不会有这么多技巧出现,谢谢分享。

原文链接:http://www.freebuf.com/articles/web/185158.html

相关推荐: 火种CTF-writeup

暑期有空参加了火种CTF的比赛,比赛总的来说不是很难,但是web部分遇到了很多困难,不过cryto较为简单,全部做出来了。逆向是一如既往的放弃,我要开始好好学逆向了~ 附比赛的wp: 传送门:火种CTF-wp 相关推荐: python小脚本之VLSM计算今儿N…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论