WAF 的全称为 Web Application Firewall,顾名思义 WAF 是一款针对 web 端的防火墙产品。通过对 HTTP(S) 请求进行检测,识别并阻断 SQL 注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC 攻击、恶意爬虫扫描、跨站请求伪造等攻击,保护 Web 服务安全稳定。
随着免费开源 WAF 的贡献,越来越多的网站拥有了 WAF 的能力,而在实际的测试过程中,遇到 WAF 的几率大大增加,所以绕 WAF 成了渗透测试人员不得不做的事儿,WAF 的检测方式,通常使用正则、关键词等方式匹配数据包中的内容,从而判断是否需要被拦截,而这种规则需要经常更新,不然会存在很多被绕过的情况。
今天要分享的几个小技巧是利用 linux 系统的特性,通过变换命令的形式来绕过 WAF 的黑名单规则。
1、通过在命令中插入未初始化的变量来绕过正则,如图
2、使用问号作为占位符,组合插入命令中,如图
3、使用单引号插入到命令中间,如图
以上就是今天的内容,主要是系统的特性来帮助我们绕过 WAF 的检测,不过规则更新也比较容易,比如将单引号过滤掉,关键词检测,根据返回内容检测等等。