
This is the exploit of CVE-2019-17240.
Versionen vor und einschließlich 3.9.2 des Bludit CMS sind anfällig für eine Umgehung des Anti-Brute-Force-Mechanismus, der Benutzer blockieren soll, die sich zehnmal oder öfter falsch angemeldet haben.
Die Sicherheitslücke wurde von Rastating entdeckt.
Das Senden einer Anmeldeanfrage mit einem X-Forwarded-For-Header-Wert einer sich ändernden Zeichenkette (gefälschte Zeichenkette) wurde erfolgreich verarbeitet, und der fehlgeschlagene Anmeldeversuch wurde gegen die gefälschte Zeichenkette protokolliert.
Das obige Skript nutzt diese Sicherheitslücke, um den Anti-Brute-Force-Mechanismus zu umgehen.
Es gibt CSRF-Token im Body der Anmeldeseite, daher muss vor jeder POST-Anfrage mit Anmeldeinformationen das CSRF-Token aus der Quelle der letzten Antwort abgerufen werden.
Eine Möglichkeit besteht darin, eine GET-Anfrage zu stellen, das CSRF-Token abzurufen, eine POST-Anfrage mit Anmeldeinformationen und dem abgerufenen Token zu stellen und dies zu wiederholen, bis das Passwort gefunden ist – so habe ich es in den meisten Skripten gesehen.
Die andere Möglichkeit besteht darin, das CSRF-Token aus der Antwort der letzten POST-Anfrage abzurufen, sodass nur beim ersten Mal eine GET-Anfrage erforderlich ist.
Die zweite Methode ist viel schneller als die erste, und ein wenig mehr Effizienz wirkt sich bei Brute-Force-Angriffen, bei denen viele Anfragen nötig sind, stark aus.
Ich habe beide Methoden ausprobiert und konnte mit der zweiten Methode 63 Wörter in einer Minute testen, mit der ersten Methode nur 19 Wörter.
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
