1.5 KiB
1.5 KiB
brute-login
Teste la résistance de l'authentification preprod par énumération de mots de passe sur un utilisateur connu.
Principe
Pour chaque mot de passe d'une wordlist, émet un POST sur
LOGIN_PATH et compare le code HTTP renvoyé à LOGIN_SUCCESS_CODE.
S'arrête à la première réussite. Le but est de mesurer la
robustesse (wordlist courte = compromise rapide → authentification
fragile ; rate-limit / lockout / 2FA = résistance), pas de produire
un déni de service.
Préparation
cp targets.example.env targets.envet renseignezTARGET_SCOPE_ACK="yes",TARGET_BASE_URL,LOGIN_PATH,LOGIN_USERNAME,LOGIN_WORDLIST.- Placez votre wordlist dans
wordlists/passwords.txt(ignoré par git) ou pointezLOGIN_WORDLISTvers un chemin absolu.
Lancement
./brute-login.sh
Sortie
- stdout : progression + verdict (réussite/échec).
output/brute-login.log: une ligne par tentative (horodatage \t code \t mot-de-passe).
Interprétation
- Réussite rapide sur une wordlist triviale → politique de mots de passe trop faible. Corriger : longueur minimale, complexité, audit contre une liste de mots de passe courants.
- 429 / lockout → rate-limiting actif (bon). Notez le seuil.
- Même code d'échec partout → impossible de distinguer réussite d'échec par le code seul ; envisagez un indiceur de succès plus fin (taille du corps, présence d'un jeton) en adaptant le script.