Uncovering CloudFlare

Support HackTricks

Common Techniques to Uncover Cloudflare

  • Puoi utilizzare un servizio che ti fornisce i record DNS storici del dominio. Forse la pagina web è in esecuzione su un indirizzo IP utilizzato in precedenza.

  • Lo stesso potrebbe essere ottenuto controllando i certificati SSL storici che potrebbero puntare all'indirizzo IP di origine.

  • Controlla anche i record DNS di altri sottodomini che puntano direttamente a IP, poiché è possibile che altri sottodomini puntino allo stesso server (forse per offrire FTP, posta o qualsiasi altro servizio).

  • Se trovi un SSRF all'interno dell'applicazione web puoi abusarne per ottenere l'indirizzo IP del server.

  • Cerca una stringa unica della pagina web in browser come shodan (e forse google e simili?). Forse puoi trovare un indirizzo IP con quel contenuto.

  • In modo simile, invece di cercare una stringa unica, potresti cercare l'icona favicon con lo strumento: https://github.com/karma9874/CloudFlare-IP o con https://github.com/pielco11/fav-up

  • Questo non funzionerà molto frequentemente perché il server deve inviare la stessa risposta quando viene accesso dall'indirizzo IP, ma non si sa mai.

Tools to uncover Cloudflare

# 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

Scoprire Cloudflare dall'infrastruttura cloud

Nota che anche se questo è stato fatto per macchine AWS, potrebbe essere fatto per qualsiasi altro fornitore di cloud.

Per una migliore descrizione di questo processo, controlla:

# 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

Bypassare Cloudflare attraverso Cloudflare

Pulls di Origine Autenticati

Questo meccanismo si basa su client certificati SSL per autenticare le connessioni tra i server reverse-proxy di Cloudflare e il server origine, chiamato mTLS.

Invece di configurare il proprio certificato, i clienti possono semplicemente utilizzare il certificato di Cloudflare per consentire qualsiasi connessione da Cloudflare, indipendentemente dal tenant.

Pertanto, un attaccante potrebbe semplicemente impostare un dominio in Cloudflare utilizzando il certificato di Cloudflare e puntarlo all'indirizzo IP del vittima. In questo modo, impostando il suo dominio completamente non protetto, Cloudflare non proteggerà le richieste inviate.

Ulteriori informazioni qui.

Indirizzi IP di Cloudflare in Lista di Autorizzazione

Questo rifiuterà le connessioni che non provengono dagli intervalli di indirizzi IP di Cloudflare. Questo è anche vulnerabile alla configurazione precedente in cui un attaccante può semplicemente puntare il proprio dominio in Cloudflare all'indirizzo IP delle vittime e attaccarlo.

Ulteriori informazioni qui.

Bypassare Cloudflare per scraping

Cache

A volte vuoi solo bypassare Cloudflare per estrarre solo la pagina web. Ci sono alcune opzioni per questo:

  • Usa la cache di Google: https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog

  • Usa altri servizi di cache come https://archive.org/web/

Strumenti

Alcuni strumenti come i seguenti possono bypassare (o sono stati in grado di bypassare) la protezione di Cloudflare contro lo scraping:

Risolutori Cloudflare

Sono stati sviluppati diversi risolutori Cloudflare:

Browser Headless Fortificati

Usa un browser headless che non venga rilevato come un browser automatizzato (potresti doverlo personalizzare per questo). Alcune opzioni sono:

Proxy Intelligente Con Bypass Integrato di Cloudflare

I proxy intelligenti vengono continuamente aggiornati da aziende specializzate, con l'obiettivo di superare le misure di sicurezza di Cloudflare (poiché è il loro business).

Alcuni di essi sono:

Per coloro che cercano una soluzione ottimizzata, il ScrapeOps Proxy Aggregator si distingue. Questo servizio integra oltre 20 fornitori di proxy in un'unica API, selezionando automaticamente il miglior e più conveniente proxy per i tuoi domini target, offrendo così un'opzione superiore per navigare nelle difese di Cloudflare.

Ingegneria Inversa della Protezione Anti-Bot di Cloudflare

L'ingegneria inversa delle misure anti-bot di Cloudflare è una tattica utilizzata dai fornitori di proxy intelligenti, adatta per scraping web estensivo senza l'alto costo di eseguire molti browser headless.

Vantaggi: Questo metodo consente di creare un bypass estremamente efficiente che mira specificamente ai controlli di Cloudflare, ideale per operazioni su larga scala.

Svantaggi: Lo svantaggio è la complessità coinvolta nella comprensione e nell'inganno del sistema anti-bot deliberatamente oscuro di Cloudflare, richiedendo uno sforzo continuo per testare diverse strategie e aggiornare il bypass man mano che Cloudflare migliora le sue protezioni.

Trova ulteriori informazioni su come fare questo nell'articolo originale.

Riferimenti

Supporta HackTricks

Last updated