迪普防火墙命令行手册_Web应用程序防火墙(WAF)bypass技术讨论(一)

Web应用程序中发现RCE漏洞的情况还是挺常见的,2017 OWASP Top 10应用程序安全风险”也将“注入”置于第一位置,例如当解释器接收到用户可控的数据作为命令或查询来执行时,很有可能会导致注入风险,例如SQL,NoSQL,OS和LDAP注入。

攻击者的恶意数据可以欺骗解释器在没有授权的情况下执行非预期的命令或访问敏感数据。

所有现代Web应用程序防火墙都能够拦截(甚至阻止)RCE,但是当发生在Linux系统时,我们也有很多方法可以bypass WAF的规则集。

使用到的方法就有“通配符”,所以接下来会讲解一些bash与通配符的事情。

通配符的一些知识

各种命令行程序会使用bash标准通配符(也称为通配模式)来处理多个文件。

如果读者想知道有关标准通配符的更多信息,可通过键入参考手册页man 7 glob来了解。并不是人人都知道有很多bash语法能够只使用问号“?”,正斜杠“/”,数字和字母来执行系统命令,且可以使用相同数量的字符枚举文件并获取其内容。

我举几个例子,例如执行ls命令,可以使用以下语法:/???/?s

迪普防火墙命令行手册_Web应用程序防火墙(WAF)bypass技术讨论(一)_第1张图片

使用上面这种语法,你想执行啥基本上都可以执行。比方说,你攻击的目标处于WAF的保护下,但是这个WAF有一个规则,一旦GET参数的值内或POST请求的body里包含/etc/passwd或/bin/ls,所有的请求都会被阻止。

如果你试图请求/?cmd=cat+/etc/passwd,那么它会被目标WAF阻止,你的IP将被永久禁止访问并被标记。如果目标WAF没有足够的规则集来阻止像?和/在查询字符串中,那么就能使用通配符来进行绕过。绕过的payload如下所示:

/?cmd=%2f???%2f??t%20%2f???%2fp??s??

迪普防火墙命令行手册_Web应用程序防火墙(WAF)bypass技术讨论(一)_第2张图片

在上面的屏幕截图中可以看到有3个错误“/bin/cat *:是一个目录 ”。

发生这种情况是因为/???/??t可以匹配到到/bin/cat、/dev/net或者/etc/

你可能感兴趣的:(迪普防火墙命令行手册)