47:WAF绕过-漏洞发现之代理池指纹被动探针
思维导图
- 1.扫描速度(绕过方法:代理池,延迟,白名单)
- 2.工具指纹(绕过方法:特征指纹,伪造模拟真实是用户)
- 3.漏洞payload(绕过方法:数据变异,数据加密,白名单)
案例1:代理池Proxy_pool项目搭建及使用解释
Proxy_pool免费,但是不适用于waf绕过,因为它是抓取网上各种代理平台提供的免费代理,免费代理存活时间短,成功率随机,稳定性差。
1.Proxy_pool下载(地址:https://github.com/jhao104/proxy_pool),安装库文件,修改setting.py文件
HOST = "127.0.0.1" DB_CONN = 'redis://:@127.0.0.1:6379/0'
2.下载并安装Redis-x64-3.2.100.msi,地址:https://github.com/MicrosoftArchive/redis/releases。
安装完成后,启动服务(找到安装路径,双击redis-cli.exe文件即可,或者在计算机管理-服务 处启动)
3.Redis可视化工具Redis Desktop Manager下载(http://pan.baidu.com/s/1kU8sY3P),安装,连接。
4.启动调度程序即可抓到代理,命令:python proxyPool.py schedule
Redis Desktop Manager中查看
5.启动webApi服务即可通过web api查看代理。
启动命令:python proxyPool.py server
查看:http://127.0.0.1:5010/get/
注意:不是每个工具都可以控制扫描速度和改变指纹头,比如xray貌似就不行。
此时,可以对工具使用代理,将数据包发送到burpsuite上,人为的对每个数据包点击放行(太麻烦了吧),以控制速度。也可以自己写个鼠标点击器,代替人为点击。
对于漏洞payload触发WAF这种情况,我们怎么绕过呢?
我们举个例子,由于每个工具判断注入点的方式不同,假设awvs通过and 1=1判断注入,xray通过or 1=1判断注入,那么当waf对and 1=1进行拦截时,我们就不能使用awvs来扫描了,因为扫描不出结果,但是我们可以换xray扫描,这样就绕过了waf拦截,所以实际操作时,我们可以多换几个工具进行扫描。(方法1)
此外还可以使用冷门扫描工具,因为工具冷门,所以漏洞验证和指纹都不会被WAF采集到,可以绕过。(方法2)
使用开源的或者自己编写的工具扫描时,可以针对触发WAF点进行数据变异,从而绕过拦截。(方法3)
awvs扫描,配置代理,将数据包发送到burp,burp配置代理,将数据包发送给xray,实现三者联动。
此时如果awvs控制了扫描速度,那么xray也会被动延时。