142 lines
10 KiB
Markdown

# Otkrivanje CloudFlare
{{#include ../../banners/hacktricks-training.md}}
## Uobičajene tehnike za otkrivanje Cloudflare
- Možete koristiti neku uslugu koja vam daje **istorijske DNS zapise** domena. Možda se veb stranica pokreće na IP adresi koja je korišćena ranije.
- Isto se može postići **proverom istorijskih SSL sertifikata** koji bi mogli ukazivati na izvor IP adresu.
- Proverite takođe **DNS zapise drugih poddomena koji direktno upućuju na IP adrese**, jer je moguće da drugi poddomeni upućuju na isti server (možda da ponude FTP, mail ili neku drugu uslugu).
- Ako pronađete **SSRF unutar veb aplikacije** možete ga iskoristiti da dobijete IP adresu servera.
- Pretražujte jedinstveni string veb stranice u pretraživačima kao što su shodan (i možda google i slični?). Možda možete pronaći IP adresu sa tim sadržajem.
- Na sličan način, umesto da tražite jedinstveni string, mogli biste pretraživati favicon ikonu pomoću alata: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) ili sa [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
- Ovo neće često funkcionisati jer server mora slati isti odgovor kada se pristupi putem IP adrese, ali nikad ne znate.
## Alati za otkrivanje Cloudflare
- Pretražujte domen unutar [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) ili [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Ili koristite alat [CloudPeler](https://github.com/zidansec/CloudPeler) (koji koristi tu API)
- Pretražujte domen na [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)
- [**CloudFlair**](https://github.com/christophetd/CloudFlair) je alat koji će pretraživati koristeći Censys sertifikate koji sadrže naziv domena, zatim će pretraživati IPv4 adrese unutar tih sertifikata i konačno će pokušati da pristupi veb stranici na tim IP adresama.
- [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r je moćan Python alat pažljivo izrađen da otkrije pravu IP adresu veb sajtova zaštićenih Cloudflare-om i drugim alternativama, široko korišćenom uslugom za bezbednost veba i poboljšanje performansi. Njegova osnovna misija je da tačno utvrdi stvarnu IP adresu veb servera koji su skriveni iza zaštitnog štita Cloudflare-a.
- [Censys](https://search.censys.io/)
- [Shodan](https://shodan.io/)
- [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)
- Ako imate skup potencijalnih IP adresa na kojima se veb stranica nalazi, mogli biste koristiti [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
```
## Otkrivanje Cloudflare iz Cloud infrastrukture
Imajte na umu da, čak i ako je ovo urađeno za AWS mašine, može se uraditi za bilo kog drugog provajdera u oblaku.
Za bolji opis ovog procesa pogledajte:
{{#ref}}
https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks
{{#endref}}
```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
```
## Zaobilaženje Cloudflare-a kroz Cloudflare
### Autentifikovani Origin Pulls
Omekanizam se oslanja na **klijentske** [**SSL sertifikate**](https://socradar.io/how-to-monitor-your-ssl-certificates-expiration-easily-and-why/) **za autentifikaciju veza** između **Cloudflare-ovih reverznih proxy** servera i **origin** servera, što se naziva **mTLS**.
Umesto da konfigurišu svoj sertifikat, korisnici mogu jednostavno koristiti Cloudflare-ov sertifikat da omoguće bilo koju vezu iz Cloudflare-a, **bez obzira na zakupca**.
> [!CAUTION]
> Stoga, napadač može jednostavno postaviti **domen u Cloudflare koristeći Cloudflare-ov sertifikat i usmeriti** ga na **IP** adresu **žrtve**. Na ovaj način, postavljajući svoj domen potpuno nezaštićen, Cloudflare neće zaštititi poslate zahteve.
Više informacija [**ovde**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
### Dozvoljene Cloudflare IP adrese
Ovo će **odbiti veze koje ne potiču iz Cloudflare-ovih** IP adresa. Ovo je takođe ranjivo na prethodnu postavku gde napadač jednostavno **usmeri svoj domen u Cloudflare** na **IP** adresu žrtve i napadne je.
Više informacija [**ovde**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
## Zaobilaženje Cloudflare-a za scraping
### Keš
Ponekad jednostavno želite da zaobiđete Cloudflare kako biste samo scrape-ovali web stranicu. Postoje neke opcije za to:
- Koristite Google keš: `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
- Koristite druge keš usluge kao što su [https://archive.org/web/](https://archive.org/web/)
### Alati
Neki alati poput sledećih mogu zaobići (ili su mogli da zaobiđu) Cloudflare-ovu zaštitu protiv scraping-a:
- [https://github.com/sarperavci/CloudflareBypassForScraping](https://github.com/sarperavci/CloudflareBypassForScraping)
### Cloudflare rešenja
Razvijeno je nekoliko Cloudflare rešenja:
- [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
- [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [Vodič ovde](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) \[Arhivirano]
- [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe)
### Ojačani headless pregledači <a href="#option-4-scrape-with-fortified-headless-browsers" id="option-4-scrape-with-fortified-headless-browsers"></a>
Koristite headless pregledač koji nije detektovan kao automatizovani pregledač (možda ćete morati da ga prilagodite za to). Neke opcije su:
- **Puppeteer:** [stealth plugin](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth) za [puppeteer](https://github.com/puppeteer/puppeteer).
- **Playwright:** [stealth plugin](https://www.npmjs.com/package/playwright-stealth) dolazi u Playwright uskoro. Pratite razvoj [ovde](https://github.com/berstend/puppeteer-extra/issues/454) i [ovde](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra).
- **Selenium:** [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver) optimizovana Selenium Chromedriver zakrpa.
### Pametan proxy sa ugrađenim zaobilaženjem Cloudflare-a <a href="#option-5-smart-proxy-with-cloudflare-built-in-bypass" id="option-5-smart-proxy-with-cloudflare-built-in-bypass"></a>
**Pametni proxy** se kontinuirano ažuriraju od strane specijalizovanih kompanija, sa ciljem da nadmaše Cloudflare-ove sigurnosne mere (jer je to njihov posao).
Neki od njih su:
- [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) su poznati po svojim vlasničkim Cloudflare zaobilaženjima.
Za one koji traže optimizovano rešenje, [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/) se izdvaja. Ova usluga integriše više od 20 provajdera proxy-a u jedan API, automatski birajući najbolji i najisplativiji proxy za vaše ciljne domene, nudeći tako superiornu opciju za navigaciju Cloudflare-ovim odbranama.
### Obrnuta inženjering Cloudflare Anti-Bot zaštite <a href="#option-6-reverse-engineer-cloudflare-anti-bot-protection" id="option-6-reverse-engineer-cloudflare-anti-bot-protection"></a>
Obrnuta inženjering Cloudflare-ovih anti-bot mera je taktika koju koriste pametni provajderi proxy-a, pogodna za opsežno web scraping bez visokih troškova vođenja mnogih headless pregledača.
**Prednosti:** Ova metoda omogućava kreiranje izuzetno efikasnog zaobilaženja koje specifično cilja Cloudflare-ove provere, idealno za operacije velikih razmera.
**Nedostaci:** Nedostatak je složenost u razumevanju i obmanjivanju Cloudflare-ovog namerno nejasnog anti-bot sistema, što zahteva kontinuirani trud za testiranje različitih strategija i ažuriranje zaobilaženja kako Cloudflare poboljšava svoje zaštite.
Pronađite više informacija o tome kako to učiniti u [originalnom članku](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/).
## Reference
- [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)
{{#include ../../banners/hacktricks-training.md}}