
Ceci est l'exploit de CVE-2019-17240.
Les versions antérieures et y compris la 3.9.2 du CMS Bludit sont vulnérables à un contournement du mécanisme anti-force brute qui est en place pour bloquer les utilisateurs qui ont tenté de se connecter incorrectement 10 fois ou plus.
La vulnérabilité a été découverte par Rastating.
Soumettre une requête de connexion avec une valeur d'en-tête X-Forwarded-For d'une chaîne changeante (chaîne usurpée) a été traité avec succès, et la tentative de connexion échouée a été enregistrée contre la chaîne usurpée.
Le script ci-dessus utilise cette vulnérabilité pour contourner le mécanisme anit-brute.
Il y a des jetons csrf dans le corps de la page de connexion, donc avant chaque fois qu'il fait une requête POST avec les identifiants, il doit récupérer le jeton csrf de la source de la dernière réponse.
Une façon de faire est de faire une requête GET, de récupérer le jeton csrf et de faire une requête POST avec les identifiants et le jeton récupéré, et de répéter jusqu'à trouver le mot de passe, et c'est ce que j'ai vu dans la plupart des scripts.
L'autre façon est de récupérer le jeton csrf de la réponse de la dernière requête POST, donc seulement la première fois vous devez faire une requête GET.
La seconde est beaucoup plus rapide que la première, et un peu plus d'efficacité fait une grande différence lorsqu'il s'agit d'attaques par force brute où vous devez faire beaucoup de requêtes.
J'ai essayé les deux méthodes et j'ai pu tester 63 mots en 1 minute avec la seconde méthode et seulement 19 mots avec la première méthode.
python3 brute.py -u [url] -user [username] -w [pathToWordlist] [-t [threads to use]]
python3 brute.py -u https://192.168.10.13/ -user admin -w sysadmin -t 30
