
此脚本将尝试查找:
该脚本(滥)用 DNS 历史记录。它将搜索旧的 DNS A 记录 并 检查服务器是否对该域名有响应。 它还会根据可能源服务器与防火墙的 HTML 响应相似性,输出置信度级别。
脚本还会获取子域名的 IP,因为根据我的个人经验,子域名的 IP 有时会指向主域名的源服务器。
按如下方式使用此脚本:
bash bypass-firewalls-by-DNS-history.sh -d example.com
-d --domain:要绕过防火墙的域名-o --outputfile:输出包含 IP 的文件-l --listsubdomains:包含子域名的列表,用于额外覆盖-a --checkall:检查所有子域名以进行 WAF 绕过解析输出以自动收集子域名需要 jq。
使用 apt install jq 安装。
为了说明我们定义的 WAF 绕过,请看下面的示意图。

普通访问者连接到一个网站。初始请求是一个 DNS 请求,询问网站的 IP,以便客户端的浏览器知道将 HTTP 请求发送到哪里。对于位于 Cloudflare 或其他公共 WAF 后面的站点,返回的应答包含 WAF 本身的 IP 地址。您的 HTTP 流量基本流经 WAF 到达源 Web 服务器。WAF 阻止恶意请求并防范 (D)DoS 攻击。但是,如果攻击者知道源 Web 服务器的 IP 并且 该源 Web 服务器接受来自整个互联网的 HTTP 流量,那么攻击者就可以执行 WAF 绕过:让 HTTP 流量直接流向源 Web 服务器,而不是经过 WAF。
此脚本试图找到该源 IP,以便您可以直接连接到源 Web 服务器。SQL 注入或 SSRF 等攻击不会被过滤,可以成功实施,这与存在 WAF 在中间阻止此类攻击的情况相反。
当您找到绕过方法时,有两种选择:
/etc/hosts(Linux/Mac)或 c:\Windows\System32\Drivers\etc\hosts(Windows)找到 hosts 文件。添加如下条目:80.40.10.22 vincentcox.com。
从此时起,您的 HTTP 流量将直接流向源 Web 服务器。您可以像往常一样执行渗透测试,而不会被 WAF 阻止请求。
此脚本对以下人群很有用:
使用了以下服务:
为什么用 Bash 而不是 Python?
最初只是几个 CURL 单行命令,然后变成了 Bash 脚本,代码越来越多,后悔没有用 Python 的感受也随之增加。
我的工具发现了更多子域名?
我知道。我不能指望每个人都安装所有这些 DNS 暴力破解和枚举工具。此外,我事先不知道这些工具放在哪个文件夹或用什么别名调用。您仍然可以使用 -l 提供您自己的列表,从而将子域名工具的输送到此工具中。期望的输入是每行一个完整的子域名。
WAF 绕过
Web 应用防火墙绕过
DNS 历史记录
查找网站的直接/源 IP
| 项目创建者 |
|---|
|
|