如何使用CloudFail绕过Cloudflare抓取数据
许多现代网站依靠 Cloudflare 来增强安全性、优化性能并防止恶意攻击。但这种先进的反机器人系统会拒绝自动流量,其中包括抓取活动,因此 CloudFail 等工具可以让您通过后门:目标网站的原始服务器。
在本教程中,您将了解如何使用CloudFail 绕过 Cloudflare。您还将探索更高效且可扩展的替代方案。
什么是CloudFail
CloudFail 是一个开源探索工具,可揭示源服务器的 IP 地址。这样,网络抓取工具就有了从受 Cloudflare 保护的网站提取数据的新机会。
CloudFail 的工作原理
CloudFail 利用了暴露源服务器的网站错误配置。该工具在使用 Tor 屏蔽所有请求时经历三个不同的阶段:
1. 使用 DNSDumpster.com 进行 DNS 扫描配置错误:当您通过 CloudFail 运行目标网站时,它会查询 DNSDumpster.com。该服务采用一个域并生成其 DNS 信息。然后分析结果以识别 DNS 设置中的任何错误配置,从而提供有关源服务器的信息。
2. 扫描 CrimeFlare 数据库: CrimeFlare是受 Cloudflare 保护的网站及其相关数据的历史数据库。在此阶段,CloudFail 会查询与目标域关联的数据。这可能包括不受 Cloudflare 保护的子域。有时,CloudFail 可能会获取实际的 IP 地址。
3. 暴力扫描超过 2,500 个子域: CloudFail 在第三阶段启动暴力扫描。这需要对照目标域检查 2,500 个子域以识别错误配置。
如何使用CloudFail
不幸的是,CloudFail 不再起作用。但即使这样做,受 Cloudflare 保护的网站也可以正确配置其域,以便源服务器的 IP 地址不会被释放或记录在任何地方。前往最佳 CloudFail 替代方案部分寻找可行的解决方案。
在 GNU/Linux 上
要使用 CloudFail,请pip3
使用以下命令安装 Python3 依赖项:
$ sudo apt-get install python3-pip
然后,创建要存储 CloudFail 源代码的目录并导航到该目录。
mkdir CloudFail_Scraper cd CloudFail_scraper
在目录中,使用以下命令克隆 CloudFail 的存储库:
git clone https://github.com/m0rtem/CloudFail
现在源代码已保存在您所需的目录中,导航到 CloudFail 并运行以下命令以授予execute
该文件权限cloudfail.py
。
chmod +x cloudfail.py
最后,安装使用 Cloudfail 的依赖项和要求。
$ pip3 install -r requirements.txt
上述命令安装的子工具包括Argparse、Colorama、Socket、Binascii、Datetime、Requests、win_inet_pton和dnspython。
现在一切都已设置完毕,让我们使用以下命令来调查 SEO.com:
python3 cloudfail.py --target seo.com
结果如下:
在 Windows 上
Windows 操作系统的过程相同,但execute
不需要许可。
下载Cloudfail的源代码并将其存储在易于找到的目录中。然后,导航到CloudFail
您的目录并安装必要的依赖项,就像我们在 GNU/Linux 上所做的那样。
最后一步是使用命令行来调查 SEO.com,就像我们对 GNU/Linux 所做的那样。
最佳 CloudFail 替代方案
幸运的是,ZenRows 提供了一种可行、高效且可扩展的方法来绕过 Cloudflare 和任何反机器人检测解决方案。您可以通过传递目标 URL 并进行单个 API 调用来检索未检测到的必要数据。
接下来,选择 Python(尽管它适用于任何语言)并粘贴您的目标 URL(我们将使用seo.com
)。Anti-bot
然后,选中、Premium Proxy
、 和复选框,JavaScript Rendering
将这些参数设置为true
。这样,您就可以运行代码了。
现在,使用以下命令安装 Python Requests 库(或使用任何其他 HTTP 库):
pip install requests
从 ZenRows 复制代码并在您喜欢的编辑器中运行代码。这是最终的代码:
# import requests import requests url = 'https://seo.com/' apikey = 'Your API Key' params = { 'url': url, 'apikey': apikey, 'js_render': 'true', 'antibot': 'true', 'premium_proxy': 'true', } response = requests.get('https://api.zenrows.com/v1/', params=params) print(response.text)
它将打印页面的 HTML。恭喜您绕过您的第一个受 Cloudflare 保护的网站。
结论
虽然使用 CloudFail 可以抵制 Cloudflare 并将请求直接发送到目标网站的源服务器,但该工具不再起作用。此外,这种方法并不可靠,因为并非所有网站的真实IP地址都能找到。