Que fait csrf-cross-site-request-forgery ?
Guide de test CSRF. À utiliser lors de la revue de flux web modifiant l'état, des défenses anti-CSRF, du comportement SameSite, du CSRF JSON, du CSRF de connexion et de la gestion d'état OAuth.
Introduction
La falsification de requête intersite (CSRF) est une attaque qui force un utilisateur authentifié à exécuter des actions indésirables sur une application web. Ce skill fournit un playbook structuré pour tester et valider les défenses CSRF.
Plateformes supportées
- Yaklang
- Tout navigateur moderne
- Outils d'interception proxy (Burp Suite, OWASP ZAP)
Scénarios de test
1. Vérification des jetons CSRF
- Identifier les endpoints qui modifient l'état
- Vérifier la présence et la validité des jetons CSRF
- Tester la régénération des jetons après connexion
- Vérifier que les jetons sont liés à la session utilisateur
2. Comportement SameSite
- Analyser l'attribut
SameSitedes cookies de session - Tester les requêtes cross-origin avec
SameSite=LaxetSameSite=Strict - Vérifier les cookies sans attribut SameSite (comportement par défaut)
3. CSRF JSON
- Tester les endpoints qui acceptent le type de contenu
application/json - Vérifier si la validation CSRF dépend du type de contenu
- Utiliser des en-têtes HTTP personnalisés pour contourner les vérifications
4. CSRF de connexion
- Tester les formulaires de connexion sans jeton CSRF
- Vérifier la protection contre les attaques de type "login CSRF" (l'attaquant connecte la victime à son compte)
5. Gestion d'état OAuth
- Analyser les flux OAuth pour les faiblesses CSRF
- Vérifier les paramètres
statedans les flux OAuth2 - Tester la validation du paramètre
statepar le serveur
Commandes yaklang
// Exemple de test de jeton CSRF
rsp, err = poc.Get("https://example.com/settings")
if err != nil {
log.Error("Erreur de requête: %s", err)
return
}
token = rsp.Cookie("csrf_token")
if token == nil {
log.Warning("Aucun jeton CSRF trouvé dans la réponse")
}
Références
Avertissement
Ce skill est destiné à des fins de test de sécurité autorisées uniquement. Obtenez toujours une autorisation écrite avant de tester des applications qui ne vous appartiennent pas.