mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-18 09:03:30 +00:00
131 lines
12 KiB
Markdown
131 lines
12 KiB
Markdown
# Découverte de CloudFlare
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
|
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
Techniques pour essayer de découvrir les serveurs web derrière Cloudflare :
|
|
|
|
### Techniques
|
|
|
|
* Vous pouvez également utiliser un service qui vous donne les **enregistrements DNS historiques** du domaine. Peut-être que la page web fonctionne sur une adresse IP utilisée auparavant.
|
|
* Il est possible d'obtenir le même résultat en **vérifiant les certificats SSL historiques** qui pourraient pointer vers l'adresse IP d'origine.
|
|
* Vérifiez également les **enregistrements DNS d'autres sous-domaines pointant directement vers des adresses IP**, car il est possible que d'autres sous-domaines pointent vers le même serveur (peut-être pour offrir FTP, courrier ou tout autre service).
|
|
* Si vous trouvez un **SSRF à l'intérieur de l'application web**, vous pouvez l'utiliser pour obtenir l'adresse IP du serveur.
|
|
*
|
|
|
|
Recherchez une chaîne de caractères unique de la page web dans des navigateurs tels que Shodan (et peut-être Google et similaires ?). Vous pouvez peut-être trouver une adresse IP avec ce contenu.
|
|
|
|
* De manière similaire, au lieu de chercher une chaîne de caractères unique, vous pouvez rechercher l'icône favicon avec l'outil : [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) ou avec [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
|
|
* Cela ne fonctionnera pas très souvent car le serveur doit envoyer la même réponse lorsqu'il est accédé par l'adresse IP, mais on ne sait jamais.
|
|
|
|
### Outils
|
|
|
|
* Recherchez le domaine dans [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) ou [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Ou utilisez l'outil [CloudPeler](https://github.com/zidansec/CloudPeler) (qui utilise cette API)
|
|
* Recherchez le domaine dans [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)
|
|
* [**CloudFlair**](https://github.com/christophetd/CloudFlair) est un outil qui recherchera à l'aide des certificats Censys contenant le nom de domaine, puis recherchera des adresses IPv4 à l'intérieur de ces certificats et enfin essaiera d'accéder à la page web sur ces adresses IP.
|
|
* [Censys](https://search.censys.io/)
|
|
* [Shodan](https://shodan.io/)
|
|
* [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)
|
|
* Si vous avez un ensemble d'adresses IP potentielles où se trouve la page web, vous pouvez utiliser [https://github.com/hakluke/hakoriginfinder](https://github.com/hakluke/hakoriginfinder)
|
|
```bash
|
|
# 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
|
|
```
|
|
### Découverte de Cloudflare à partir de machines AWS
|
|
|
|
Pour une meilleure description de ce processus, consultez :
|
|
|
|
{% embed url="https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
|
```bash
|
|
# 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
|
|
```
|
|
## Contourner Cloudflare pour le scraping
|
|
|
|
### Cache
|
|
|
|
Parfois, vous voulez simplement contourner Cloudflare pour ne scraper que la page web. Il existe plusieurs options pour cela :
|
|
|
|
* Utilisez le cache Google : `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
|
|
* Utilisez d'autres services de cache tels que [https://archive.org/web/](https://archive.org/web/)
|
|
|
|
### Résolveurs Cloudflare
|
|
|
|
Plusieurs résolveurs Cloudflare ont été développés :
|
|
|
|
* [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
|
|
* [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [Guide ici](https://scrapeops.io/python-web-scraping-playbook/python-cloudscraper/)
|
|
* [cloudflare-scrape](https://github.com/Anorov/cloudflare-scrape)
|
|
* [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe)
|
|
* [Cloudflare-IUAM-Solver](https://github.com/ninja-beans/cloudflare-iuam-solver)
|
|
* [cloudflare-bypass](https://github.com/devgianlu/cloudflare-bypass) \[Archivé]
|
|
* [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe)
|
|
|
|
### Navigateurs sans tête renforcés <a href="#option-4-scrape-with-fortified-headless-browsers" id="option-4-scrape-with-fortified-headless-browsers"></a>
|
|
|
|
L'autre option est de faire tout le travail de scraping avec un navigateur sans tête qui a été renforcé pour ressembler à un navigateur d'utilisateur réel :
|
|
|
|
* **Puppeteer :** Le [plugin stealth](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth) pour [puppeteer](https://github.com/puppeteer/puppeteer).
|
|
* **Playwright :** Le [plugin stealth](https://www.npmjs.com/package/playwright-stealth) arrive bientôt sur Playwright. Suivez les développements [ici](https://github.com/berstend/puppeteer-extra/issues/454) et [ici](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra).
|
|
* **Selenium :** L'[undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver) est un correctif optimisé pour Selenium Chromedriver.
|
|
|
|
### Proxy intelligent avec contournement intégré de Cloudflare <a href="#option-5-smart-proxy-with-cloudflare-built-in-bypass" id="option-5-smart-proxy-with-cloudflare-built-in-bypass"></a>
|
|
|
|
L'alternative à l'utilisation de contournements Cloudflare open source est d'utiliser des proxies intelligents qui développent et maintiennent leurs propres contournements privés de Cloudflare.
|
|
|
|
Ceux-ci sont généralement plus fiables car il est plus difficile pour Cloudflare de développer des correctifs pour eux, et ils sont développés par des entreprises de proxy qui sont financièrement motivées pour rester un pas en avant de Cloudflare et corriger leurs contournements dès qu'ils cessent de fonctionner.
|
|
|
|
La plupart des fournisseurs de proxy intelligents ([ScraperAPI](https://www.scraperapi.com/?fp\_ref=scrapeops), [Scrapingbee](https://www.scrapingbee.com/?fpr=scrapeops), [Oxylabs](https://oxylabs.go2cloud.org/aff\_c?offer\_id=7\&aff\_id=379\&url\_id=32), [Smartproxy](https://prf.hn/click/camref:1100loxdG/\[p\_id:1100l442001]/destination:https%3A%2F%2Fsmartproxy.com%2Fscraping%2Fweb)) ont une forme de contournement de Cloudflare qui fonctionne à des degrés divers et varient en coût.
|
|
|
|
Cependant, l'une des meilleures options est d'utiliser l'[agrégateur de proxy ScrapeOps](https://scrapeops.io/proxy-aggregator/) car il intègre plus de 20 fournisseurs de proxy dans la même API de proxy et trouve le meilleur/fournisseur de proxy le moins cher pour vos domaines cibles.
|
|
|
|
### Ingénierie inverse de la protection anti-bot de Cloudflare <a href="#option-6-reverse-engineer-cloudflare-anti-bot-protection" id="option-6-reverse-engineer-cloudflare-anti-bot-protection"></a>
|
|
|
|
Cette approche fonctionne (et c'est ce que font de nombreuses solutions de proxy intelligentes), mais elle n'est pas pour les âmes sensibles.
|
|
|
|
**Avantages :** L'avantage de cette approche est que si vous scrapez à grande échelle et que vous ne voulez pas exécuter des centaines (voire des milliers) d'instances coûteuses de navigateurs sans tête, vous pouvez plutôt développer le contournement de Cloudflare le plus efficace en termes de ressources possible. Celui qui est conçu uniquement pour passer les tests de Cloudflare JS, TLS et IP fingerprint.
|
|
|
|
**Inconvénients :** Les inconvénients de cette approche sont que vous devrez plonger profondément dans un système anti-bot qui a été délibérément rendu difficile à comprendre de l'extérieur, et tester différentes techniques pour tromper leur système de vérification. Ensuite, maintenez ce système alors que Cloudflare continue de développer sa protection anti-bot.
|
|
|
|
## Références
|
|
|
|
* [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
|
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Partagez vos astuces de hacking en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|