> 文章列表 > 02-waf绕过漏洞发现之代理池指纹被动探针

02-waf绕过漏洞发现之代理池指纹被动探针

02-waf绕过漏洞发现之代理池指纹被动探针

WAF绕过-漏洞发现之代理池指纹被动探针

思维导图

02-waf绕过漏洞发现之代理池指纹被动探针

漏洞发现触发WAF点-针对xray工具,awvs工具等

  • 1.扫描速度(绕过方法:代理池,延迟,爬虫白名单)
  • 2.工具指纹(绕过方法:特征指纹,伪造模拟真实是用户)
  • 3.漏洞payload(绕过方法:数据变异,数据加密,白名单)

一、代理池Proxy_pool项目搭建及使用解释

Proxy_pool免费,但是不适用于waf绕过,因为它是抓取网上各种代理平台提供的免费代理,免费代理存活时间短,成功率随机,稳定性差。

需要搭配redis数据库

安装使用步骤:

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),安装,连接。

04.启动调度程序即可抓到代理,命令:python proxyPool.py schedule

Redis Desktop Manager中查看

02-waf绕过漏洞发现之代理池指纹被动探针

5.启动webApi服务即可通过web api查看代理。

启动命令:python proxyPool.py server

查看:http://127.0.0.1:5010/get/

02-waf绕过漏洞发现之代理池指纹被动探针

二、充钱代理池直接干safedog+BT+aliyun探针

免费代理不好用,那我们就买代理,建议选择隧道代理,每次请求换IP。

快代理:https://www.kuaidaili.com/

买隧道代理的,每次请求都更改ip,稳定

0

购买完成后提供代理配置网站

02-waf绕过漏洞发现之代理池指纹被动探针

配置到脚本中就可以实现绕过了:

import requests
import timeheaders = {'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','Accept-Encoding': 'gzip, deflate, br','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6','Cache-Control': 'max-age=0','Connection': 'keep-alive','Cookie': 'PHPSESSID=4d6f9bc8de5e7456fd24d60d2dfd5e5a','sec-ch-ua': '"Chromium";v="92", " Not A;Brand";v="99", "Microsoft Edge";v="92"','sec-ch-ua-mobile': '?0','Sec-Fetch-Dest': 'document','Sec-Fetch-Mode': 'navigate','Sec-Fetch-Site': 'none','Sec-Fetch-User': '?1','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)'
}for paths in open('php_b.txt', encoding='utf-8'):url = "http://127.0.0.1/pikachu"paths = paths.replace('\\n', '')urls = url + pathsproxy = {'购买的代理池'}try:code = requests.get(urls, headers=headers, proxies=proxy).status_code# time.sleep(3)print(urls + '|' + str(code))except Exception as err:print('connect error')time.sleep(3)//这里php_b.txt是爆破的目录字典
//head里面放入正常的数据包头部信息

0

宝塔日志,可以看到如果拦截,拦截的也是代理的IP。

02-waf绕过漏洞发现之代理池指纹被动探针

三、safedog-awvs漏扫注入测试绕过-延时,白名单

本地测试sqlilabs,并且本地的安全狗也是开启状态,cc防护也开了

awvs扫描漏洞,直接扫描会被拦截。

开启sqlmap及waf进行测试。

02-waf绕过漏洞发现之代理池指纹被动探针

awvs开启慢速扫描:

awvs扫描sqli-labs(绕过安全狗),设置最低速或者修改AWVS指纹头

02-waf绕过漏洞发现之代理池指纹被动探针

速度很快会被安全狗拦截。也可以修改User-Agent,也可以用burpsuite拦截,然后通过按键精灵自己控制速度进行发包速度调整较为麻烦。

对于漏洞payload触发WAF这种情况,我们怎么绕过呢?

方法1:

我们举个例子,由于每个工具判断注入点的方式不同,假设awvs通过and 1=1判断注入,xray通过or 1=1判断注入,那么当waf对and 1=1进行拦截时,我们就不能使用awvs来扫描了,因为扫描不出结果,但是我们可以换xray扫描,这样就绕过了waf拦截,所以实际操作时,我们可以多换几个工具进行扫描。

方法2:

此外还可以使用冷门扫描工具,因为工具冷门,所以漏洞验证和指纹都不会被WAF采集到,可以绕过。

方法3:

使用开源的或者自己编写的工具扫描时,可以针对触发WAF点进行数据变异,从而绕过拦截

四、BT(baota)-awvs+xray漏扫Payload绕过

注意:不是每个工具都可以控制扫描速度和改变指纹头,比如xray貌似就不行。

因此xray没办法直接实现绕过。

为什么要使用xray,因为不同工具扫描漏洞使用的payload是不同的,扫描结果可能也不同。

解决xray拦截问题:

awvs扫描,配置代理,将数据包发送到burp,burp配置代理,将数据包发送给xray,实现三者联动。

此时如果awvs控制了扫描速度,那么xray也会被动延时。

步骤:

配置代理,发送至burp

0

bp配置:

02-waf绕过漏洞发现之代理池指纹被动探针

xray开启监听:

0

三者联动(AWVS +Burpsuite +Xray)结果:

02-waf绕过漏洞发现之代理池指纹被动探针

五、充钱代理池干safedog+BT+AliyunOS漏洞发现

宝塔正常开启

02-waf绕过漏洞发现之代理池指纹被动探针

代理配置:

02-waf绕过漏洞发现之代理池指纹被动探针

02-waf绕过漏洞发现之代理池指纹被动探针

02-waf绕过漏洞发现之代理池指纹被动探针

可以成功看到sql注入测试语句:

02-waf绕过漏洞发现之代理池指纹被动探针

补充:手工测试注入

and 1=1 安全狗拦截

02-waf绕过漏洞发现之代理池指纹被动探针

xor 1 = 1 被BT的防火墙拦截

02-waf绕过漏洞发现之代理池指纹被动探针

每个工具的payload不一样,有的可能会触发waf被拦截