Uncovering CloudFlare
Reading time: 10 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
Common Techniques to Uncover Cloudflare
- 你可以使用一些服务来获取域名的 历史 DNS 记录。也许网页运行在之前使用过的 IP 地址上。
- 同样可以通过 检查历史 SSL 证书 来实现,这些证书可能指向原始 IP 地址。
- 还要检查 其他子域名的 DNS 记录,直接指向 IP,因为其他子域名可能指向同一服务器(可能提供 FTP、邮件或其他服务)。
- 如果你在 网络应用程序中发现 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/ 中搜索域名。
- 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
通过 Cloudflare 绕过 Cloudflare
认证源拉取
该机制依赖于 client SSL 证书 来验证连接,连接在 Cloudflare 的反向代理 服务器和 源 服务器之间,这被称为 mTLS。
客户可以简单地使用 Cloudflare 的证书来允许来自 Cloudflare 的任何连接,无论租户如何。
caution
因此,攻击者可以仅仅设置一个 使用 Cloudflare 的证书的域名并将其指向 受害者 域名的 IP 地址。这样,设置他的域名完全不受保护,Cloudflare 不会保护发送的请求。
更多信息 在这里。
允许列表 Cloudflare IP 地址
这将 拒绝不来自 Cloudflare 的 IP 地址范围的连接。这也容易受到之前设置的攻击,攻击者只需 将自己的域名指向 Cloudflare 的 受害者 IP 地址并进行攻击。
更多信息 在这里。
绕过 Cloudflare 进行抓取
缓存
有时你只想绕过 Cloudflare 以抓取网页。对此有一些选项:
- 使用 Google 缓存:
https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog
- 使用其他缓存服务,如 https://archive.org/web/
工具
一些工具如以下工具可以绕过(或曾能够绕过)Cloudflare 对抓取的保护:
Cloudflare 解算器
已经开发了多种 Cloudflare 解算器:
- FlareSolverr
- cloudscraper 指南在这里
- cloudflare-scrape
- CloudflareSolverRe
- Cloudflare-IUAM-Solver
- cloudflare-bypass [已归档]
- CloudflareSolverRe
加固的无头浏览器
使用一个不会被检测为自动化浏览器的无头浏览器(你可能需要为此进行定制)。一些选项包括:
- Puppeteer: stealth 插件 用于 puppeteer。
- Playwright: stealth 插件 很快将加入 Playwright。请关注 这里 和 这里 的进展。
- Selenium: undetected-chromedriver 是一个优化的 Selenium Chromedriver 补丁。
智能代理与 Cloudflare 内置绕过
智能代理 由专业公司持续更新,旨在超越 Cloudflare 的安全措施(因为这是他们的业务)。
其中一些包括:
- ScraperAPI
- Scrapingbee
- Oxylabs
- Smartproxy 以其专有的 Cloudflare 绕过机制而闻名。
对于寻求优化解决方案的人,ScrapeOps 代理聚合器 脱颖而出。该服务将超过 20 个代理提供商集成到一个 API 中,自动选择最佳和最具成本效益的代理,以便为你的目标域名提供更优的选择,从而更好地应对 Cloudflare 的防御。
逆向工程 Cloudflare 反机器人保护
逆向工程 Cloudflare 的反机器人措施是智能代理提供商使用的一种策略,适合于大规模网页抓取,而无需高成本地运行多个无头浏览器。
优点: 这种方法允许创建一个极其高效的绕过,专门针对 Cloudflare 的检查,适合大规模操作。
缺点: 缺点在于理解和欺骗 Cloudflare 故意模糊的反机器人系统的复杂性,需要持续努力测试不同的策略并在 Cloudflare 加强保护时更新绕过。
有关如何做到这一点的更多信息,请参见 原始文章。
参考文献
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。