# 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 1. `cp targets.example.env targets.env` et renseignez `TARGET_SCOPE_ACK="yes"`, `TARGET_BASE_URL`, `LOGIN_PATH`, `LOGIN_USERNAME`, `LOGIN_WORDLIST`. 2. Placez votre wordlist dans `wordlists/passwords.txt` (ignoré par git) ou pointez `LOGIN_WORDLIST` vers un chemin absolu. ## Lancement ```bash ./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.