
Le Prime kit d'audit et d'exploitation de la falsification de requête intersite (CSRF).
XSRFProbe est une boîte à outils avancée d'audit et d'exploitation de la falsification de requête intersite (CSRF/XSRF). Équipée d'un moteur de crawling puissant et de nombreux contrôles systématiques, elle est capable de détecter la plupart des cas de vulnérabilités CSRF, leurs contournements associés, et de générer des preuves de concept exploitables pour chaque vulnérabilité découverte. Pour plus d'informations sur le fonctionnement de XSRFProbe, voir XSRFProbe Internals sur le wiki.
Wiki XSRFProbe • Pour commencer • Utilisation générale • Utilisation avancée • Fonctionnement interne de XSRFProbe • Galerie
Origin: null) ainsi que les contournements par méthode de substitution et Content-Type.--max-urls, --max-depth et --crawl-timeout).Chaque vérification effectuée par XSRFProbe possède un identifiant unique. Cet identifiant est affiché dans la sortie console (par ex. [T6] VULNÉRABLE : ...) et stocké comme champ test_id de chaque résultat dans le rapport JSON (avec sa severity et, le cas échéant, une note exploitability sous details), de sorte que chaque résultat renvoie au test exact qui l'a produit.
| ID | Catégorie | Vérification |
|---|---|---|
D1 | Présence du jeton | Aucun jeton anti-CSRF présent (falsification de requête générique) |
D2 | Présence du jeton | Le formulaire de connexion ne possède pas de jeton CSRF (CSRF de connexion) |
T2 | Altération du jeton | Validation liée à la méthode de requête (commutation GET ↔ POST) |
T3 | Altération du jeton | Le jeton peut être complètement omis |
T4 | Altération du jeton | Le jeton n'est pas lié à la session utilisateur (relecture inter-session) |
T5 | Altération du jeton | Le jeton est lié à un cookie non-session (ex. csrfKey) |
T6 | Altération du jeton | Cookie double-soumission naïf (cookie == corps, sans liaison) |
T7 | Altération du jeton | Valeur de jeton vide acceptée |
T8 | Altération du jeton | Jeton d'en-tête personnalisé peut être omis ou falsifié |
M1 | Méthode / Content-Type | Surcharge de méthode HTTP via le paramètre _method |
M2 | Méthode / Content-Type | Surcharge de méthode HTTP via l'en-tête X-HTTP-Method-Override |
M4 | Méthode / Content-Type | Contournement de la validation via un Content-Type alternatif |
R0 | Referer | L'en-tête Referer n'est pas validé lors de la soumission du formulaire |
R1 | Referer | Contournement de la validation Referer en omettant l'en-tête |
R2a | Referer | Contournement regex Referer — cible en tant que sous-domaine attaquant |
R2b | Referer | Contournement regex Referer — cible dans la chaîne de requête |
R2c | Referer | Contournement regex Referer — cible dans le chemin |
O1 | Origin | Contournement de la validation Origin avec Origin: null |
O2 | Origin | Contournement de la validation Origin via une astuce de sous-domaine |
O3 | Origin | Contournement de la validation Origin en omettant l'en-tête |
S2 | SameSite (navigateur) | Contournement de SameSite=Strict via un gadget de redirection côté client |
S3 | SameSite (navigateur) | Contournement de SameSite=Strict via XSS sur un sous-domaine frère |
S4 | SameSite (navigateur) | Contournement de SameSite=Lax via un flux de rafraîchissement de cookie / OAuth |
C1 | Posture des cookies | Analyse de l'attribut SameSite des cookies (None/Lax/Strict) |
C2 | Posture des cookies | Aucun attribut SameSite défini sur les cookies |
E1 | Force du jeton | Le jeton utilise un encodage de hachage faible/structuré |
A1 | Force du jeton | Analyse post-scan de la prédictibilité / forgeabilité du jeton |
Les vérifications
S*nécessitent l'intégration optionnelle du navigateur sans tête (--browser). Les vérificationsT*/M*/R*/O*sont des vérifications au niveau HTTP contrôlées par le moteur de différenciation/benchmark des réponses.
Voyons quelques scénarios réels de XSRFProbe en action :