Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
poc-CVE-2019-9053 — Didaktischer PoC in Python 3 für CVE-2019-9053, eine time-based blind SQL Injection im CMS Made Simple <= 2.2.9. Diese Version wurde für den Einsatz in CTF/Laborumgebungen angepasst, mit vorkonfigurierten Präfixen zur Reduzierung der Extraktionszeit und erklärenden Nachrichten auf Portugiesisch. | Kitploit
Tools/GitHubGitHub/rideckszz/poc-cve-2019-9053
Passwort-CrackingSchwachstellenanalyseWebanwendungs-ExploitationCTFLernen & BildungLabs & Praxis
GitHubrideckszz/poc-cve-2019-9053

poc-CVE-2019-9053

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Didaktischer PoC in Python 3 für CVE-2019-9053, eine time-based blind SQL Injection im CMS Made Simple <= 2.2.9. Diese Version wurde für den Einsatz in CTF/Laborumgebungen angepasst, mit vorkonfigurierten Präfixen zur Reduzierung der Extraktionszeit und erklärenden Nachrichten auf Portugiesisch.

15vor 3 MonatenNoch nicht geprüft
Teilen

PoC CVE-2019-9053 - CMS Made Simple SQL-Injection

Didaktischer PoC in Python 3 für CVE-2019-9053, eine Schwachstelle für zeitbasierte Blind-SQL-Injection in CMS Made Simple <= 2.2.9.

Diese Version wurde für den Einsatz in CTF-/Laborumgebungen modifiziert. Sie enthält vorkonfigurierte Präfixe, um die Extraktionszeit zu reduzieren, sowie erklärende Texte auf Portugiesisch, um Studenten das Verständnis der Funktionsweise des Exploits zu erleichtern.

Warnung

Dieses Projekt ist ausschließlich für Bildungszwecke, kontrollierte Laborumgebungen und CTF-Umgebungen bestimmt.

Verwenden Sie diesen Code nicht gegen Systeme Dritter ohne ausdrückliche Genehmigung.

Der Autor dieses Repositorys übernimmt keine Haftung für Missbrauch dieses Materials.

Schwachstelle

Die CVE-2019-9053 betrifft ältere Versionen von CMS Made Simple und ermöglicht eine nicht authentifizierte SQL-Injection über den Parameter m1_idlist am Endpunkt:

root@kitploit:~
/moduleinterface.php?mact=News,m1_,default,0

Da das Ergebnis der SQL-Abfrage nicht direkt auf der Seite erscheint, verwendet der Exploit eine Technik namens zeitbasierte Blind-SQL-Injection.

Wie der Exploit funktioniert

Der Exploit sendet Payloads, die die Datenbank dazu bringen, sleep(1) auszuführen, wenn eine Bedingung wahr ist.

Konzeptionelles Beispiel:

root@kitploit:~
AND (
  SELECT sleep(1)
  FROM cms_users
  WHERE password LIKE '0c01%'
)

Wenn der Server verzögert antwortet, erkennt das Skript, dass das getestete Präfix korrekt ist.

Auf diese Weise rekonstruiert es sensible Informationen Zeichen für Zeichen, wie:

  • Salt des Passworts
  • Benutzername
  • E-Mail
  • Hash des Passworts

In dieser CTF-Version wurden einige Präfixe bereits in den Code aufgenommen, um die benötigte Zeit während der Aktivität zu reduzieren.

Was ist eine zeitbasierte Blind-SQL-Injection?

Eine SQL-Injection tritt auf, wenn die Anwendung benutzergesteuerte Daten ohne ordnungsgemäße Behandlung in eine SQL-Abfrage einfügt.

In diesem Fall ist die Injection blind, weil das Ergebnis der Abfrage nicht direkt in der HTTP-Antwort erscheint.

Sie ist zeitbasiert, weil der Angreifer die Antwortzeit des Servers als Antwortkanal nutzt. Wenn die getestete Bedingung wahr ist, führt die Datenbank eine Verzögerung mit sleep() aus. Ist sie falsch, kommt die Antwort normal.

Vereinfachtes Beispiel:

root@kitploit:~
Vom Exploit gestellte Frage:
"Beginnt der Passwort-Hash mit 0c01?"

Wenn ja:
Die Datenbank führt sleep(1) aus, und die Antwort verzögert sich.

Wenn nein:
Die Antwort kommt ohne wahrnehmbare Verzögerung.

Durch Wiederholen dieses Vorgangs Zeichen für Zeichen kann der Exploit Datenbankwerte rekonstruieren, auch wenn er sie nicht direkt auf der Seite sieht.

Was ist ein Salt?

Ein Salt ist ein zusätzlicher Wert, der zusammen mit dem Passwort verwendet wird, bevor der Hash erzeugt wird.

In dieser Herausforderung verwendet CMS Made Simple eine ähnliche Logik wie:

root@kitploit:~
md5(salt + password)

Zum Beispiel:

root@kitploit:~
salt = 1dac0d92e9fa6bb2
password = exemplo123

Der Hash würde berechnet aus:

root@kitploit:~
1dac0d92e9fa6bb2exemplo123

Das Salt dient dazu, Angriffe mit vorberechneten Tabellen zu erschweren und sicherzustellen, dass gleiche Passwörter in verschiedenen Kontexten unterschiedliche Hashes erzeugen können.

Trotzdem ist md5(salt + password) eine veraltete und schwache Methode zur Passwortspeicherung. Moderne Systeme sollten eigene Algorithmen für Passwörter verwenden, wie:

  • Argon2
  • bcrypt
  • scrypt
  • PBKDF2

Änderungen dieser CTF-Version

Diese Version wurde angepasst, um die Verwendung in einer praktischen Aktivität zu erleichtern.

Hauptänderungen:

  • Code auf Python 3 aktualisiert.
  • Erklärendes Banner auf Portugiesisch.
  • Kurze Erklärung im Terminal zur Funktionsweise des Exploits.
  • Bekannte Präfixe zur Beschleunigung der Extraktion.
  • Optimierter Zeichensatz für Salt und Hash in Hexadezimal.
  • Größenbegrenzung für Salt und Hash.
  • Option zum Knacken mit einer Wortliste.

Im Challenge verwendete Werte:

root@kitploit:~
Salt completo: 1dac0d92e9fa6bb2
Username: mitch
Email: [email protected]
Hash completo: 0c01f4468bd75d7a84c7eb73846e8d96

Im Exploit konfigurierte Präfixe:

root@kitploit:~
Salt prefix: 1dac0d92
Username prefix: mit
Email prefix: admin@
Hash prefix: 0c01f446

Diese Präfixe entfernen nicht die Logik des Angriffs. Sie reduzieren lediglich die benötigte Zeit für die Laboraktivität.

Repository-Struktur

root@kitploit:~
poc-CVE-2019-9053/
├── exploit_ctf.py
├── requirements.txt
├── README.md
├── wordlist-example.txt
└── .gitignore

Voraussetzungen

  • Python 3
  • requests
  • termcolor

Installation

Klonen Sie das Repository:

root@kitploit:~
git clone https://github.com/SEU_USUARIO/poc-CVE-2019-9053.git
cd poc-CVE-2019-9053

Erstellen Sie eine virtuelle Umgebung:

root@kitploit:~
python3 -m venv .venv

Aktivieren Sie die virtuelle Umgebung:

root@kitploit:~
source .venv/bin/activate

Installieren Sie die Abhängigkeiten:

root@kitploit:~
pip install -r requirements.txt

requirements.txt

Die Datei requirements.txt sollte enthalten:

root@kitploit:~
requests
termcolor

Verwendung

Einfache Ausführung:

root@kitploit:~
python3 exploit_ctf.py -u http://target/cms

Ausführung mit versuchtem Passwortknacken mittels Wortliste:

root@kitploit:~
python3 exploit_ctf.py -u http://target/cms --crack -w wordlist-example.txt

Hilfe zum Skript anzeigen:

root@kitploit:~
python3 exploit_ctf.py -h

Beispiel einer Wortliste

Die Datei wordlist-example.txt könnte enthalten:

root@kitploit:~
wrongpassword
admin123
dieema123
password
123456

Beispiel einer erwarteten Ausgabe

root@kitploit:~
[+] Salt da senha encontrado: 1dac0d92e9fa6bb2
[+] Username encontrado: mitch
[+] Email encontrado: [email protected]
[+] Hash da senha encontrado: 0c01f4468bd75d7a84c7eb73846e8d96
[+] Senha encontrada: dieema123

Erklärung des Crackings

Nachdem der Exploit das Salt und den Passwort-Hash extrahiert hat, kann er versuchen, das Passwort im Klartext mithilfe einer Wortliste zu ermitteln.

Die getestete Logik ist:

root@kitploit:~
md5(salt + senha_candidata)

Für jedes Passwort aus der Wortliste berechnet das Skript den Hash und vergleicht ihn mit dem aus der Datenbank extrahierten Hash.

Konzeptionelles Beispiel:

root@kitploit:~
candidate_hash = md5("1dac0d92e9fa6bb2" + "dieema123")

Wenn das Ergebnis gleich dem extrahierten Hash ist, wurde das Passwort gefunden.

Hinweise zur Ausführungszeit

Zeitbasierte Blind-SQL-Injection ist in der Regel langsam, da jedes Zeichen durch mehrere Anfragen getestet werden muss.

Diese Version reduziert die Zeit durch:

  • Bekannte Präfixe.
  • Hexadezimalen Zeichensatz für Salt und Hash.
  • Bekannte maximale Größe für Salt und Hash.
  • Verzögerung von 1 Sekunde pro korrektem Zeichen.

Trotzdem kann die Zeit variieren je nach:

  • Netzwerklatenz.
  • Serverlast.
  • Datenbankleistung.
  • Wert von TIME_DELAY.

Bei vielen falsch positiven oder falsch negativen Ergebnissen erhöhen Sie den Wert von TIME_DELAY im Code.

Credits

Für CTF modifizierte Python-3-Version von Derick G. Andrighetti.

Basiert auf einem alten öffentlichen PoC in Python 2, ursprünglich veröffentlicht von Daniele Scanu von der Certimeter Group.

Referenzen

  • CVE-2019-9053
  • CMS Made Simple <= 2.2.9
  • Technik: zeitbasierte Blind-SQL-Injection

Lizenz

Bildungszwecke.

Dieses Material wurde für Studienzwecke, Labordemonstrationen und CTF-Aktivitäten erstellt.

Tool herunterladen