
🔎 Trova i server di origine dei siti web dietro CloudFlare utilizzando i dati di scansione a livello di Internet da Censys.
Nota importante: A partire dalla fine del 2024, Censys non fornisce più accesso API per gli account gratuiti. Questo significa che CloudFlair non funziona più con account Censys gratuiti.
CloudFlair è uno strumento per trovare server di origine di siti web protetti da CloudFlare (o CloudFront) che sono esposti pubblicamente e non limitano adeguatamente l'accesso di rete agli intervalli IP CDN pertinenti.
Lo strumento utilizza dati di scansione a livello Internet da Censys per trovare host IPv4 esposti che presentano un certificato SSL associato al nome di dominio del target. Sono necessarie chiavi API, che possono essere recuperate dal tuo account Censys.
Per maggiori dettagli su questa configurazione errata comune e su come funziona CloudFlair, fai riferimento al post sul blog di accompagnamento su https://blog.christophetd.fr/bypassing-cloudflare-using-internet-wide-scan-data/.
Ecco come appare CloudFlair in azione.
$ python cloudflair.py myvulnerable.site
[*] The target appears to be behind CloudFlare.
[*] Looking for certificates matching "myvulnerable.site" using Censys
[*] 75 certificates matching "myvulnerable.site" found.
[*] Looking for IPv4 hosts presenting these certificates...
[*] 10 IPv4 hosts presenting a certificate issued to "myvulnerable.site" were found.
- 51.194.77.1
- 223.172.21.75
- 18.136.111.24
- 127.200.220.231
- 177.67.208.72
- 137.67.239.174
- 182.102.141.194
- 8.154.231.164
- 37.184.84.44
- 78.25.205.83
[*] Retrieving target homepage at https://myvulnerable.site
[*] Testing candidate origin servers
- 51.194.77.1
- 223.172.21.75
- 18.136.111.24
responded with an unexpected HTTP status code 404
- 127.200.220.231
timed out after 3 seconds
- 177.67.208.72
- 137.67.239.174
- 182.102.141.194
- 8.154.231.164
- 37.184.84.44
- 78.25.205.83
[*] Found 2 likely origin servers of myvulnerable.site!
- 177.67.208.72 (HTML content identical to myvulnerable.site)
- 182.102.141.194 (HTML content identical to myvulnerable.site)
(Gli indirizzi IP in questo esempio sono stati offuscati e sostituiti con IP generati casualmente)
$ export CENSYS_API_ID=...
$ export CENSYS_API_SECRET=...
$ git clone https://github.com/christophetd/CloudFlair.git
cd CloudFlair
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python cloudflair.py myvulnerable.site
o per CloudFront
python cloudflair.py myvulnerable.site --cloudfront
$ python cloudflair.py --help
usage: cloudflair.py [-h] [-o OUTPUT_FILE] [--censys-api-id CENSYS_API_ID] [--censys-api-secret CENSYS_API_SECRET] [--cloudfront] domain
positional arguments:
domain The domain to scan
options:
-h, --help show this help message and exit
-o OUTPUT_FILE, --output OUTPUT_FILE
A file to output likely origin servers to (default: None)
--censys-api-id CENSYS_API_ID
Censys API ID. Can also be defined using the CENSYS_API_ID environment variable (default: None)
--censys-api-secret CENSYS_API_SECRET
Censys API secret. Can also be defined using the CENSYS_API_SECRET environment variable (default: None)
--cloudfront Check Cloudfront instead of CloudFlare. (default: False)
È disponibile un'immagine Docker leggera di CloudFlair (christophetd/cloudflair). Una scansione può essere facilmente avviata utilizzando il seguente comando.
$ docker run --rm -e CENSYS_API_ID=your-id -e CENSYS_API_SECRET=your-secret christophetd/cloudflair myvulnerable.site
Puoi anche creare un file contenente la definizione delle variabili d'ambiente e utilizzare l'opzione --env-file di Docker.
$ cat censys.env
CENSYS_API_ID=your-id
CENSYS_API_SECRET=your-secret
$ docker run --rm --env-file=censys.env christophetd/cloudflair myvulnerable.site
Testato su Python 3.6. Sentiti libero di aprire una issue se hai segnalazioni di bug o domande.