hacktricks/network-services-pentesting/pentesting-web/uncovering-cloudflare.md
2023-07-07 23:42:27 +00:00

13 KiB
Raw Blame History

CloudFlareの解明

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

クラウドフレアの背後にあるウェブサーバーを解明するためのテクニック:

テクニック

  • ドメインの過去のDNSレコードを提供するサービスを使用することもできます。おそらく、ウェブページは以前に使用されたIPアドレスで実行されています。
  • 同様に、過去のSSL証明書をチェックすることもできます。これらの証明書は、元のIPアドレスを指している可能性があります。
  • 他のサブドメインのDNSレコードをチェックして、直接IPにポイントしているかどうかも確認してください。他のサブドメインが同じサーバーを指している可能性がありますおそらくFTP、メール、または他のサービスを提供するため
  • ウェブアプリケーション内にSSRFが見つかった場合、それを悪用してサーバーのIPアドレスを取得することができます。

Shodanなどのブラウザでウェブページの一意の文字列を検索しますおそらくGoogleなどでも。そのコンテンツを持つIPアドレスを見つけることができるかもしれません。

  • 同様の方法で、一意の文字列を探す代わりに、次のツールを使用してファビコンアイコンを検索できます:https://github.com/karma9874/CloudFlare-IPまたはhttps://github.com/pielco11/fav-up
  • これは頻繁には機能しないかもしれませんが、サーバーはIPアドレスでアクセスされたときに同じ応答を送信する必要があるため、試してみる価値はあります。

ツール

# 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

AWSマシンからCloudflareを解析する

このプロセスの詳細な説明については、以下を参照してください:

{% embed url="https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

# 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をバイパスしたい場合があります。以下のオプションがあります。

  • Googleキャッシュを使用するhttps://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog
  • https://archive.org/web/などの他のキャッシュサービスを使用する

Cloudflare Solvers

いくつかのCloudflareソルバーが開発されています。

強化されたヘッドレスブラウザ

もう一つのオプションは、実際のユーザーのブラウザのように見えるように強化されたヘッドレスブラウザを使用して、完全なスクレイピング作業を行うことです。

Cloudflare組み込みバイパスのスマートプロキシ

オープンソースのCloudflareバイパスを使用する代わりに、独自のプライベートCloudflareバイパスを開発および維持するスマートプロキシを使用する方法もあります。

これらは通常、Cloudflareがそれらに対してパッチを開発するのが難しいため、信頼性が高く、Cloudflareよりも1歩先を行くために財務的な動機を持つプロキシ会社によって開発されています。

ほとんどのスマートプロキシプロバイダー(ScraperAPIScrapingbeeOxylabsSmartproxyには、さまざまな程度で動作するCloudflareバイパスがあります。

ただし、最も優れたオプションの1つは、ScrapeOps Proxy Aggregatorを使用することです。これは20以上のプロキシプロバイダーを同じプロキシAPIに統合し、対象ドメインに対して最適で最も安価なプロキシプロバイダーを見つけます。

Cloudflareのアンチボット保護のリバースエンジニアリング

このアプローチは機能します(多くのスマートプロキシソリューションが行っている方法です)、ただし、初心者向けではありません。

利点: このアプローチの利点は、大規模なスクレイピングを行い、数百もしくは数千の高コストなフルヘッドレスブラウザインスタンスを実行したくない場合、CloudflareのJS、TLS、IPフィンガープリントテストをパスするために最もリソース効率の良いCloudflareバイパスを開発できることです。

欠点: このアプローチの欠点は、外部から理解するのが困難になるように意図的に作られたアンチボットシステムに深く入り込み、検証システムを騙すための異なるテクニックを試し、Cloudflareがアンチボット保護を開発し続けるにつれて、このシステムを維持する必要があるということです。

参考文献

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥