WAF拦截会出现在安全测试的各个层面,掌握各个层面的分析和绕过技术最为关键。
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图1
    image.png

    演示案例:

    (1).Safedog-默认拦截机制分析绕过-未开 CC:

    CC就是DDOS攻击的一种,默认是不开启的。
    判断有没有WAF可以直接在url上一顿乱输入,让其报错显示。
    image.png

    拿到一个网站我们使用路径爆破工具:可以看出来这些地址全是误报
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图4

    这时候我们使用浏览器访问正确的路径是可以访问的,我们对比一下,浏览器访问网站的数据包和使用抓包工具(推荐使用进程数据包抓取那个—wex岁月联盟啥的)抓取爆破软件访问的数据包:
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图5
    可以很明显的看出不同,在请求方法上就不同。可以修改为Get方式。
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图6
    问题解决了:不存在误报了
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图7

    (2).Safedog-默认拦截机制分析绕过-开启 CC:
    image.png

    开启CC之后,再次使用工具,并且访问网站。
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图9

    这个原因是访问流量太大,所以我们需要设置延时,降低访问速度:
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图10

    其次个别waf还设置有黑白名单:
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图11

    那么我们也可以伪造各大搜索引擎的UA进行扫描:但是扫描没有任何结果
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图12

    这个时候我们使用bp抓取一个正常访问的数据包:
    image.png

    此时我们需要编写python脚本模拟用户进行访问,将每次爬虫的数据包格式都改成正确的:
    image.png

    image.png

    import requests import time

    headers = { ‘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 + paths proxy = { ‘http’: ‘127.0.0.1:7777’ } try: code = requests.get(urls, headers=headers, proxies=proxy).status_code

    1. # time.sleep(3)
    2. print(urls + '|' + str(code))
    3. except Exception as err:
    4. print('connect error')
    5. time.sleep(3)

    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图16

    运行脚本使用bp抓取数据包:发现和正常访问一样
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图17

    如果不用自定义头:即去掉这个部分
    image.png

    结果就会很尴尬:
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图19

    为了防护cc,可以直接在脚本里使用爬虫各大引擎UA的请求头:可以看到非常舒服
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图20

    代理池技术:相当于找了一个中间商,你访问先到代理然后再到你这里:
    image.png
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图22

    (3)阿里云
    阿里云-无法模拟搜索引擎爬虫绕过,只能采用代理池或者延时。

    (4)阿里云服务器+宝塔付费安全服务—-使用的是阿里云服务器并且在上面开了宝塔的服务:绕过方法只能是代理池或延迟
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图23

    通过延时来搞:只能是3秒或者更多
    WAF绕过信息收集之反爬虫/延时/代理池技术: - 图24

    发现最后还是连接失败—是宝塔的原因—可以优化日志,因为宝塔检测出一分钟内访问敏感文件了。比如说code.php.bak 可以优化成code.php.bak .或者code.php.bak%20访问的还是原来的。

    拿到一个网站绕过waf几率综合下来只有30%,接下来又会推出ai版本的waf,———所以且行且珍惜吧!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!