WAF绕过(一)信息收集之模拟爬虫和延时及代理技术

前言

现在实际渗透测试中都可能会碰见Waf,而一个服务器如果存在waf那么我们很多地方都会被限制到,比如扫描,针对某漏洞利用被拦截,但是也不是绝对安全,还是有很多方式可以绕过这些防护,针对渗透测试的信息收集阶段如果碰到Waf的解决思路就是本文章的重点。

SafeDog的绕过测试研究

在本地搭建一个Web 把安全狗的默认防护开启,我们对本机网站进行信息收集,进行目录扫描:

图片[1]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

发现我们不管怎么探测,都是200状态码,这是很明显的被拦截了,我们用抓包软件抓一下该工具发送的数据包进行观察:

图片[2]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

数据包:

工具发送的数据包:
HEAD /%25DomainCenter%25.tar.xz HTTP/1.1
Accept: text/html, application/xhtml+xml, image/jxr, */*
Accept-Language: en-US, en; q=0.8, zh-Hans-CN; q=0.5, zh-Hans; q=0.3
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36
Host: 192.168.68.147
Connection: Close

再打开浏览器进行访问查看正常用户访问的数据包:

GET / HTTP/1.1
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
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=ullopv3p516as816tb0mihktt7
Host: 192.168.68.147
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.76

这里通过对比可以看到,工具的请求方式默认是head,而正常用户的请求方式默认是get

这有什么区别? head的请求方式是很多爬虫引擎的默认请求方式,他的特点就是响应报文中没有响应体只有响应头,这样速度就会很快,爬虫效率更高

在安全狗防护日志也看到了对该请求方式的拦截:

图片[3]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

所以我们进行更改把head调整为get方式再进行:

可以看到成功扫描完成,而且结果也是正确的

图片[4]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

扫描成功是因为安全狗默认防护中没有开启CC防护

图片[5]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

如果我们手动开启CC防护再进行扫描:

可以看到,又像上面一样,被拦截了

图片[6]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

我们此时再进行访问网站页面:

已经被拦截了

图片[7]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

就可以成功绕过了,不过缺点就是扫描速度太慢了,因为延时了。

绕过思路?

延时扫描

我们打开安全狗具体看CC防护的防护策略,其实CC被拦截的本质就是请求太频繁了,我们降低速率就好,也就是进行延时。

可以看到请求100次最多10次

图片[8]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

我们如果对扫描工具进行延时扫描,比如控制速率让他不打破这个规则那么就不会被拦截:

图片[9]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

模拟其他搜索引擎爬虫UA进行白名单绕过

我们知道百度,谷歌,搜孤等搜索引擎都有自己的搜素引擎,那么一般一个网站想被收录就要被这些搜索引擎爬虫进行扫描,所以一般WAF都会把这些爬虫引擎设置为白名单,那么我们就可以利用这个点,安装时就是默认开的。

图片[10]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

我们在工具中自定义UA 更换为百度搜索引擎的UA然后进行扫描:

User-Agent :Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)

可以发现成功绕过CC防护:

图片[11]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

挂代理IP池

对于一些高防收费WAF中,伪装搜索引擎可能过不了,那么就只剩下挂IP代理池了,我们可以找一些代理池如:

图片[12]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

把这些代理ip爬行下来,然后挂代理去进行扫描:

贴一个python的扫描脚本 proxy 就可以自己把代理ip放入

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)'
}

print("请输入扫描路径(http/https开头):")
url=input()
for paths in open('php.txt', encoding='utf-8'):
    #url = "<https://www.yanyang.ink/>"

    paths = paths.replace('\\n', '')
    urls = url + paths
    proxy = {
        'http': '127.0.0.1:7777'
    }
    try:
        code = requests.get(urls, headers=headers).status_code #proxies=proxy 添加代理抓包
        # time.sleep(3)
        if code ==200:
            print(urls+'\\033[32m[√] 路径存在 \\033[0m')
        else:
            print(urls + '|' + str(code))
    except Exception as err:
        print('connect error')
        #time.sleep(3)

就可以正常完成扫描

多重WAF叠加网站

对于有一些网站,比如他是阿里云的服务器,然后上面用的宝塔建站并开通防护,然后又安装了安全狗,那么他其实是有三个WAF,第一个阿里云的安全防护,第二个宝塔的防护,第三个安全狗的防护,此时如果进行扫描信息收集,我们要选用一种能同时绕过三个防护的方法,比如延时,挂代理

图片[13]-WAF绕过(一)信息收集之模拟爬虫和延时及代理技术-Drton1博客

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论