
XSRFProbe v3.0.0
Il Prime Cross Site Request Forgery (CSRF) Toolkit di Audit e Sfruttamento.
XSRFProbe
Il Toolkit Primario per Audit e Sfruttamento di Cross Site Request Forgery.
Informazioni
XSRFProbe è un toolkit avanzato per l'audit e lo sfruttamento di Cross Site Request Forgery (CSRF/XSRF). Dotato di un potente motore di crawling e di numerosi controlli sistematici, è in grado di rilevare la maggior parte dei casi di vulnerabilità CSRF, i relativi bypass e di generare proof of concept sfruttabili per ogni vulnerabilità trovata. Per maggiori informazioni su come funziona XSRFProbe, consulta XSRFProbe Internals sul wiki.
Wiki di XSRFProbe • Per Iniziare • Utilizzo Generale • Utilizzo Avanzato • Interni di XSRFProbe • Galleria
Alcune Caratteristiche
- Esegue una batteria completa di controlli sistematici — basati su un motore di confronto/benchmark delle risposte — prima di dichiarare un endpoint vulnerabile.
- Rileva e manomette attivamente molte implementazioni di token Anti-CSRF: cambio del metodo di richiesta, rimozione del token, valori vuoti/duplicati, token non vincolati alla sessione, cookie double-submit e token in intestazione personalizzata.
- Sonda la validazione Referer e Origin con bypass reali (rimozione dell'intestazione, trucchi regex/sottodominio,
Origin: null) oltre a bypass tramite method-override e Content-Type. - Analizza le protezioni dei cookie SameSite, con enumerazione opzionale dei sottodomini (tramite crt.sh) per test di bypass tramite dominio fratello.
- Funziona con un potente crawler dotato di crawling deterministico e limitato, con scansione configurabile (tramite
--max-urls,--max-depthe--crawl-timeout). - Integrazione opzionale con Firefox senza interfaccia (Selenium) per test dipendenti dal browser e validazione automatica dei PoC generati.
- Rilevamento accurato della forza dei token e Analisi tramite controlli di entropia e codifica.
- Può generare sia proof of concept CSRF normali che sfruttabili in modo dannoso.
- Supporto nativo per valori personalizzati di cookie, intestazioni generiche e un report JSON — ogni risultato include un livello di gravità e una precondizione di sfruttabilità.
- L'utente ha il controllo di tutto ciò che lo scanner fa.
- Ambiente interattivo intuitivo con supporto completo verbose e registrazione dettagliata di errori, vulnerabilità e token.
Test di Vulnerabilità Eseguiti:
Ogni controllo eseguito da XSRFProbe ha un identificatore univoco. L'ID viene mostrato nell'output della console (ad es. [T6] VULNERABILE: ...) e memorizzato come campo test_id di ogni risultato nel report JSON (insieme alla sua severity e, se pertinente, a una nota exploitability sotto details), in modo che ogni risultato corrisponda al test esatto che lo ha prodotto.
| ID | Categoria | Controllo |
|---|---|---|
D1 | Presenza token | Nessun token anti-CSRF presente (falsificazione generica di richieste) |
D2 | Presenza token | Il modulo di login è privo di token CSRF (login CSRF) |
T2 | Manomissione token | Validazione legata al metodo di richiesta (scambio GET ↔ POST) |
T3 | Manomissione token | Il token può essere omesso completamente |
T4 | Manomissione token | Token non legato alla sessione utente (replay cross-sessione) |
T5 | Manomissione token | Token legato a un cookie non di sessione (es. csrfKey) |
T6 | Manomissione token | Cookie double-submit ingenuo (cookie == corpo, nessun legame) |
T7 | Manomissione token | Valore del token vuoto accettato |
T8 | Manomissione token | Token in intestazione personalizzata può essere omesso o falsificato |
M1 | Metodo / Content-Type | Override del metodo HTTP tramite parametro _method |
M2 | Metodo / Content-Type | Override del metodo HTTP tramite intestazione X-HTTP-Method-Override |
M4 | Metodo / Content-Type | Bypass della validazione tramite Content-Type alternativo |
R0 | Referer | Intestazione Referer non validata nell'invio del modulo |
R1 | Referer | Bypass della validazione Referer omettendo l'intestazione |
R2a | Referer | Bypass regex Referer — target come sottodominio dell'attaccante |
R2b | Referer | Bypass regex Referer — target nella stringa di query |
R2c | Referer | Bypass regex Referer — target nel percorso |
O1 | Origin | Bypass della validazione Origin con Origin: null |
O2 | Origin | Bypass della validazione Origin con un trucco di sottodominio |
O3 | Origin | Bypass della validazione Origin omettendo l'intestazione |
S2 | SameSite (browser) | Bypass di SameSite=Strict tramite gadget di reindirizzamento lato client |
S3 | SameSite (browser) | Bypass di SameSite=Strict tramite XSS su un sottodominio fratello |
S4 | SameSite (browser) | Bypass di SameSite=Lax tramite flusso cookie-refresh / OAuth |
C1 | Postura cookie | Analisi dell'attributo SameSite dei cookie (None/Lax/Strict) |
C2 | Postura cookie | Nessun attributo SameSite impostato sui cookie |
E1 | Forza token | Il token utilizza una codifica hash debole/strutturata |
A1 | Forza token | Analisi di prevedibilità/forgiabilità del token post-scansione |
I controlli
S*richiedono l'integrazione opzionale con browser senza interfaccia (--browser). I controlliT*/M*/R*/O*sono controlli a livello HTTP regolati dal motore di confronto/benchmark delle risposte.
Galleria
Vediamo alcuni scenari reali di XSRFProbe in azione:
Installazione e Utilizzo
Per informazioni complete sull'utilizzo, consulta il wiki — Utilizzo Generale e Utilizzo Avanzato.
Installazione tramite Pypi:
XSRFProbe può essere facilmente installato con un singolo comando:
pip install xsrfprobe
Installazione manuale:
- Per le basi, il primo passo è installare lo strumento:
pip install .
- Ora lo strumento può essere avviato con:
xsrfprobe --help
- I test dipendenti dal browser (
--browser,--auto-validate-poc) richiedono inoltre che geckodriver sia disponibile nel tuoPATH(o indicato tramite--geckodriver-path). - Dopo aver testato XSRFProbe su un sito, viene creata una cartella di output nella tua directory di lavoro corrente denominata
xsrfprobe-output. All'interno di questa cartella puoi visualizzare i log dettagliati e le informazioni raccolte durante le scansioni (passa--jsonper un report leggibile da macchina).
Versione e Licenza
XSRFProbe è attualmente alla v3.0.0 e il lavoro è concesso in licenza secondo la GNU General Public License (GPLv3).
Avvertenze
Non utilizzare questo strumento su un sito live!
Questo perché lo strumento è progettato per eseguire automaticamente tutti i tipi di invio di moduli, che potrebbero sabotare il sito. A volte potresti danneggiare il database e molto probabilmente eseguire un DoS sul sito.
Testa su una configurazione/sito di prova usa e getta!
Dichiarazione di non responsabilità
L'utilizzo di XSRFProbe per testare siti web senza previo accordo reciproco può essere considerato un'attività illegale. È responsabilità dell'utente finale rispettare tutte le leggi locali, statali e federali applicabili. L'autore non si assume alcuna responsabilità e non è responsabile per qualsiasi uso improprio o danno causato da questo programma.
Parole dell'Autore
Questo progetto si basa interamente sulla mia ricerca e sulla mia esperienza con le applicazioni web riguardanti gli attacchi di Cross-Site Request Forgery. Puoi provare a esaminare il codice sorgente per capire come è stato costruito questo toolkit. Pull request utili, idee e segnalazioni sono benvenute. Se desideri vedere come viene sviluppato XSRFProbe, consulta la Bacheca di Sviluppo.
Realizzato con ♡ da @0xInfection