Que fait authbypass-authentication-flaws ?
Playbook de test de contournement d'authentification. À utiliser lors de l'évaluation des flux de connexion, de la logique de réinitialisation de mot de passe, de la récupération de compte, du contournement MFA, de la prévisibilité des jetons, de la résistance à la force brute et des failles de limites de session.
Objectif
Identifier les vulnérabilités critiques de contournement d'authentification dans une application web en utilisant des techniques de test avancées.
Prérequis
- Yaklang (version récente)
- Accès à l'application cible (URL, endpoints, jetons d'authentification)
- Documentation des flux d'authentification (connexion, réinitialisation MDP, récupération de compte)
Configuration
# Assurez-vous que l'outil yak est installé
which yak
# Définissez les variables d'environnement nécessaires
export TARGET_URL="https://example.com"
export AUTH_ENDPOINT="/login"
export RESET_ENDPOINT="/reset-password"
export ACCOUNT_RECOVERY_ENDPOINT="/recover-account"
Exécution
- Test de force brute sur la page de connexion : Utilisez
yak brute-forceavec une liste de mots de passe courants contre l'endpoint de connexion. - Test de contournement de mot de passe : Envoyez des requêtes avec des jetons vides, des jetons invalides ou des méthodes HTTP non standard (ex.
GETau lieu dePOST). - Analyse des jetons MFA : Vérifiez si les codes MFA sont prédictibles (ex. séquence numérique simple) ou si des jetons générés sont réutilisables.
- Test de limites de session : Examinez les cookies de session, les signatures et les scopes pour détecter des failles de session concurrente ou de contournement.
- Analyse des réponses : Comparez les codes HTTP, les messages d'erreur et les en-têtes pour identifier des failles (ex.
200 OKaprès un jeton invalide).
Exemples de commandes
# Test de force brute avec une liste de mots de passe
cat passwords.txt | yak brute-force --target $TARGET_URL$AUTH_ENDPOINT --field username,password
# Test de contournement de jeton
curl -X POST $TARGET_URL$AUTH_ENDPOINT \
-d "username=admin&password=admin&token="
# Analyse des en-têtes de session
curl -I $TARGET_URL/dashboard -H "Cookie: session=12345"
# Test de prédictibilité MFA
for i in {000000..999999}; do
curl -X POST $TARGET_URL$AUTH_ENDPOINT \
-d "mfa_code=$i"
done
Interprétation des résultats
- Contournement réussi : L'application répond avec un code
200ou302sans validation correcte. - Token prédictible : Les jetons MFA ou de réinitialisation sont séquentiels ou basés sur des horodatages.
- Faiblage de session : La session n'est pas liée à l'utilisateur ou peut être usurpée.
Dépannage
- Erreur 429 : L'application applique une limitation de débit. Réduisez la fréquence des requêtes ou utilisez des proxies.
- Erreur 403 : L'application bloque les adresses IP. Utilisez des en-têtes
X-Forwarded-Forou des proxies. - Pas de réponse : Vérifiez l'URL et les variables d'environnement.