揭露 CloudFlare
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
揭露 Cloudflare 的常见技术
- 你可以使用一些提供该域名 历史 DNS 记录 的服务。也许该网页之前运行在某个已被使用过的 IP 地址上。
- 同样可以通过 检查历史 SSL 证书 来实现,这些证书可能指向源服务器的 IP 地址。
- 还要检查 其他子域的 DNS 记录是否直接指向 IP,因为其他子域可能指向同一台服务器(例如提供 FTP、mail 或其他服务)。
- 如果你在 web 应用中发现 SSRF,可以滥用它来获取服务器的 IP 地址。
- 在像 shodan 这样的搜索引擎中搜索网页中的唯一字符串(也许还有 google 等类似的?)。也许你能找到包含该内容的 IP 地址。
- 类似地,与你搜索唯一字符串不同,你也可以用工具搜索 favicon 图标: https://github.com/karma9874/CloudFlare-IP 或 https://github.com/pielco11/fav-up
- 这类方法不常奏效,因为服务器在通过 IP 访问时必须返回相同的响应,但也说不准。
Tools to uncover Cloudflare
- 在 http://www.crimeflare.org:82/cfs.html 或 https://crimeflare.herokuapp.com 中搜索该域名。或者使用工具 CloudPeler(它使用该 API)
- 在 https://leaked.site/index.php?resolver/cloudflare.0/ 中搜索该域名
- CF-Hero 是一个全面的侦察工具,用于发现受 Cloudflare 保护的 web 应用的真实 IP 地址。它通过多源情报收集并采用多种方法进行寻找。
- CloudFlair 是一个工具,它会使用包含域名的 Censys 证书进行搜索,然后在这些证书中查找 IPv4,并最终尝试访问这些 IP 上的网页。
- CloakQuest3r:CloakQuest3r 是一个强大的 Python 工具,精心构建以揭露由 Cloudflare 及其他替代方案保护的网站的真实 IP 地址。其核心目标是准确识别隐藏在 Cloudflare 保护盾后的 Web 服务器的实际 IP 地址。
- Censys
- Shodan
- Bypass-firewalls-by-DNS-history
- 如果你有一组可能托管该网页的 IP,可以使用 https://github.com/hakluke/hakoriginfinder
# You can check if the tool is working with
prips 1.0.0.0/30 | hakoriginfinder -h one.one.one.one
# If you know the company is using AWS you could use the previous tool to search the
## web page inside the EC2 IPs
DOMAIN=something.com
WIDE_REGION=us
for ir in `curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="EC2") | select(.region|test("^us")) | .ip_prefix'`; do
echo "Checking $ir"
prips $ir | hakoriginfinder -h "$DOMAIN"
done
从云基础设施发现 Cloudflare
请注意,虽然这是在 AWS 机器上完成的,但同样适用于任何其他云提供商。
如需更详细的流程说明,请查看:
# Find open ports
sudo masscan --max-rate 10000 -p80,443 $(curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="EC2") | .ip_prefix' | tr '\n' ' ') | grep "open" > all_open.txt
# Format results
cat all_open.txt | sed 's,.*port \(.*\)/tcp on \(.*\),\2:\1,' | tr -d " " > all_open_formated.txt
# Search actual web pages
httpx -silent -threads 200 -l all_open_formated.txt -random-agent -follow-redirects -json -no-color -o webs.json
# Format web results and remove eternal redirects
cat webs.json | jq -r "select((.failed==false) and (.chain_status_codes | length) < 9) | .url" | sort -u > aws_webs.json
# Search via Host header
httpx -json -no-color -list aws_webs.json -header Host: cloudflare.malwareworld.com -threads 250 -random-agent -follow-redirects -o web_checks.json
Bypassing Cloudflare through Cloudflare
Authenticated Origin Pulls
该机制依赖于 client SSL certificates 来对 Cloudflare’s reverse-proxy 服务器与 origin 服务器之间的连接进行认证,称为 mTLS。
客户可以不配置自己的证书,而是简单地使用 Cloudflare 的证书来允许来自 Cloudflare 的任何连接,不考虑租户。
Caution
因此,攻击者可以在 Cloudflare 中设置一个 domain 并使用 Cloudflare 的证书,然后将其指向 victim domain 的 IP 地址。这样,攻击者将其 domain 完全置于未保护状态,Cloudflare 将无法保护发送的请求。
More info here.
Allowlist Cloudflare IP Addresses
这会 拒绝不来自 Cloudflare 的 IP 地址范围的连接。该做法也容易受到前述场景的影响——攻击者只需在 Cloudflare 中 将自己的 domain 指向 victim 的 IP 地址并对其发起攻击。
More info here.
Bypass Cloudflare for scraping
Cache
有时你只想绕过 Cloudflare 以便仅抓取网页。可以使用以下选项:
- Use Google cache:
https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog - 使用其它缓存服务,例如 https://archive.org/web/
Tools
下面这些工具可以绕过(或曾经能够绕过)Cloudflare 对 scraping 的防护:
Cloudflare Solvers
已经开发出若干 Cloudflare solvers:
- FlareSolverr
- cloudscraper Guide here
- cloudflare-scrape
- CloudflareSolverRe
- Cloudflare-IUAM-Solver
- cloudflare-bypass [Archived]
- CloudflareSolverRe
Fortified Headless Browsers
使用不会被检测为自动化的 headless browser(可能需要为此进行定制)。一些选项包括:
- Puppeteer: 适用于 puppeteer 的 stealth plugin。
- Playwright: stealth plugin 将很快支持 Playwright。进展请关注 here 和 here。
- Selenium: SeleniumBase 是一个现代的浏览器自动化框架,具有内置的 stealth 能力。它提供两种模式:UC Mode,基于 [undetected-chromedriver] 的优化 Selenium ChromeDriver 补丁;以及 CDP Mode,可以绕过 bot 检测、解决 CAPTCHAs,并利用 Chrome DevTools Protocol 的高级方法。
Smart Proxy With Cloudflare Built-In Bypass
Smart proxies 由专门公司持续更新,旨在对抗 Cloudflare 的安全措施(这是它们的业务所在)。
其中一些包括:
- ScraperAPI
- Scrapingbee
- Oxylabs
- Smartproxy 以其专有的 Cloudflare bypass 机制而著称。
对于寻求优化解决方案的用户,ScrapeOps Proxy Aggregator 是一个突出选择。该服务将 20 多个代理提供商集成到单一 API 中,会自动为目标域选择最佳且性价比最高的代理,从而为应对 Cloudflare 防护提供了更优选项。
Reverse Engineer Cloudflare Anti-Bot Protection
对 Cloudflare 的 anti-bot 措施进行逆向工程是 smart proxy 提供商常用的策略,适用于大规模的 web scraping,且无需为运行大量 headless browsers 承担高昂成本。
优势: 该方法可以针对 Cloudflare 的检测机制创建极其高效的绕过方案,适合大规模操作。
劣势: 缺点是需要复杂的工作来理解并欺骗 Cloudflare 那些刻意模糊的 anti-bot 系统,需持续测试不同策略并在 Cloudflare 加强防护时不断更新绕过方法。
更多实施细节请参见原始文章: https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/
References
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。


