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
joomla.3.7.0exploit — Proof-of-Concept-Exploit für die SQL-Injection-Schwachstelle in Joomla 3.7.0 com_fields (CVE-2017-8917), der Erkennung, Enumeration und Datenextraktion in einem CTF-freundlichen Workflow demonstriert. | Kitploit
Tools/GitHubGitHub/ztrxwzy/joomla.3.7.0exploit
SchwachstellenanalyseExploitationWebanwendungs-ExploitationCTFPenetrationstests
GitHubztrxwzy/joomla.3.7.0exploit

joomla.3.7.0exploit

Proof-of-Concept-Exploit für die SQL-Injection-Schwachstelle in Joomla 3.7.0 com_fields (CVE-2017-8917), der Erkennung, Enumeration und Datenextraktion in einem CTF-freundlichen Workflow demonstriert.

Repository anzeigen
2vor 6 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2017-8917 Joomla SQLi PoC

Dieses Repository enthält einen einfachen, CTF-freundlichen Proof of Concept (PoC) für die SQL-Injection-Schwachstelle com_fields von Joomla (CVE-2017-8917). Ziel ist es, den Ablauf schlank zu halten und dennoch den vollständigen Exploitationsablauf zu zeigen: Erkennung, Aufzählung und Datenextraktion.

Überblick über CVE-2017-8917

Schwachstelle: SQL-Injection in der com_fields-Komponente von Joomla.

Grundursache: Der Parameter list[fullordering] wird nicht ordnungsgemäß bereinigt, sodass SQL in die generierte Abfrage injiziert werden kann. Bei Verwendung eines fehlerbasierten Payloads (z. B. UpdateXML) kann das SQL-Ergebnis in der Antwort sichtbar gemacht werden, was die Datenextraktion ermöglicht.

Wie sie ausgenutzt wird (Überblick):

  1. Senden Sie eine manipulierte Anfrage an index.php?option=com_fields&view=fields&layout=modal, wobei der Parameter list[fullordering] auf einen schädlichen Payload gesetzt ist.
  2. Verwenden Sie fehlerbasierte Funktionen (wie UpdateXML), um die Datenbank zu zwingen, Ergebnisse zurückzugeben.
  3. Analysieren Sie die Antwort (in diesem PoC das <title>-Tag) und extrahieren Sie die injizierte Ausgabe.
  4. Führen Sie die Abfragen nacheinander aus, um Version, Datenbankname, Tabellen, Spalten und Zeilen aufzulisten.

Wichtige Codepfade

Im Folgenden finden Sie die wichtigsten Komponenten.

parse_args()

Parst CLI-Argumente in ein einfaches args-Objekt mit host und debug. Das Skript geht von HTTP auf Port 80 aus und erstellt die Basis-URL aus --host.

run_exploit()

run_exploit() ist die zentrale Orchestrierungsfunktion:

  • Sitzungsverwaltung: Verwendet requests.Session(), sodass Cookies und Header erhalten bleiben.
  • request_title(): Sendet eine Anfrage und extrahiert den <title>-Wert. Der PoC nutzt fehlerbasierte SQLi, um Daten in dieses Tag zu leaken; dies ist also der Kern der Datenextraktion.
  • build_params(): Erstellt die verwundbaren Anfrageparameter mit dem injizierten SQL.
  • Vollständiger Ablauf: probe → enumerate → dump.
  • Aufzählungs-/Dump-Methoden: sql_list() und dump_table() automatisieren die Aufzählung und die abschnittsweise Extraktion.

_fetch_token()

Das CSRF-Token wird aus der Joomla-Anmeldeseite extrahiert. Obwohl es in einigen Szenarien nicht erforderlich ist, erzwingen viele Joomla-Routen weiterhin CSRF-Prüfungen. Es einzubinden:

  • Erhöht die Zuverlässigkeit gegenüber strengeren Umgebungen.
  • Macht den PoC „am realistischsten“.
  • Ermöglicht die Wiederverwendung des Skripts, selbst wenn ein Anmeldeablauf oder eine Token-Prüfung erzwungen wird.

wrap_payload() und encode_sql_string()

Diese Helfer erzeugen den eigentlichen Injection-Payload:

  • wrap_payload() kapselt eine rohe Abfrage in UpdateXML(...), um eine fehlerbasierte Ausgabe zu erzwingen.
  • encode_sql_string() wandelt Zeichenfolgen in CHAR(...)-Ausdrücke um, um Probleme mit Anführungszeichen zu vermeiden.

Abschnittsweise Extraktion (_dump_table())

Zeilen werden mit einem Trennzeichen verkettet und in Teilzeichenfolgen abgerufen, um ein Abschneiden zu vermeiden. Dadurch bleibt die Ausgabe auch bei langen Zeilenwerten konsistent.

Verwendung

root@kitploit:~
python main.py --host <TARGET_IP>

Optionale Debug-Ausgabe:

root@kitploit:~
python main.py --host <TARGET_IP> --debug

Erwartete Ausgabe (hier auszufüllen)

root@kitploit:~
└─$ python exploit.py --host <TARGET>

                         ]LLLLLLLLmmmmmLLLLLL[
                         ]LLLLLLLLLLLLLLLLL[
                         ]LLLLLLLLLLLLLLLLL[
                         ]LLLLLLLLLLLLLLLLL[
                         ]LLLLLLLLLLLLLLLLL[
         ms.             ]LLLLLLLLLLLLLLLLL[              ,m
        ]LLLLs.          ]LLLLLLLL~+LLLLLLL[           _gLLLL
        LLLLLLLL_.        LLLLLLLL  ~~\LLLL[        ,gLLLLLLLi
       dLLLLLLLLLLm_     -LLLLLLLo      LLL[      _mLLLLLLLLLL.
      iLLLLLLLLLLLLLLs.  ]LLf` ,  'c    LLL[   ,gLLLLLLLLLLLLLL
     iLLLLLLLLLLLLLLLLLLsgL`   'c-  \.    LLLLLLLLLLLLLLLLLLLLLL
    ,LLLLLLLLLLLLLLLLLLLLL!      =__/Li  iLLLLLLLLLLLLLLLLLLLLLLL
   gLLLLLLLLLLLLLLLLLLLLLL    imm_.Y~'`  LLLLLLLLLLLLLLLLLLLLLLLLL.
  dLLLLLLLLLLLLLLLLLLLLLLL     'LL_     dLLLLLLLLLLLLLLLLLLLLLLLLLLi
,LLLLLLLLLLLLLLLLLLLLLLLLLi        ~--__LLLLLLLLLLLLLLLLLLLLLLLLLLLLs
'LLLLLLLLLLLLLLLLLLLLLLLLLLs.          LLLLLLLLLLLLLLLLLLLLLLLLLLLLL~
   'LLLLLLLLLLLLLLLLLLLLLLLLLL_.         LLLLLLLLLLLLLLLLLLLLLLLLf
      'LLLLLLLLLLLLLLLLLLLLLLLLLLm_       'LLLLLLLLLLLLLLLLLLLLLLf`
         'LLLLLLLLLLLLLLLLLLLLLLLL'Lm_      LLLLLLLLLLLLLLLL`
            LLLLLLLLLLLLLLLLLLLLLL  'LL     LLLLLLLLLLLLLLLf
             'LLLLLLLLLLLLLLLLLLL    L     LLLLLLLLLLL~
               _LLLLLLLLLLLLLLL  !i   ]   ,LLLLLLLLLLLs.
           gLLLLLLLLLLLLLLLLL!   's  [ _mLLLLLLLLLLLLLLLs
         gmLLLLLLLLLLLLLLLLLLL      ~eLLLLLLLLLLLLLLLLLLLLLms
      _gLLLLLLLLLLLLLLLLLLLLLL.       'LLLLLLLLLLLLLLLLLLLLLLLs_
   _gLLLLLLLLLLLLLLLLLLLLLLLLLL_        !LLLLLLLLLLLLLLLLLLLLLLLLs.
,gLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLm_       YLLLLLLLLLLLLLLLLLLLLLLLLLms
 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLs    ]LLLLLLLLLLLLLLLLLLLLLLLLLL`
  'LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 'YL   ]LLLLLLLLLLLLLLLLLLLLLLLLf
   'LLLLLLLLLLLLLLLLLLLLLLLLLLLf`!   f  ,LLLLLLLLLLLLLLLLLLLLLLLL!
    'LLLLLLLLLLLLLLLLLLLLLLLLL[      LmmLLLLLLLLLLLLLLLLLLLLLLLL`
      LLLLLLLLLLLLLLLLLf  LLLLi   t  LLLLLLL  LLLLLLLLLLLLLLLLL!
      'LLLLLLLLLLLLLf     LLLL[    '*LLLLLLL    'LLLLLLLLLLLLL[
       !LLLLLLLLLf`       LLLLLs     'YLLLLL       ~LLLLLLLLLL
        LLLLLLf~          LLLLLLLs     LLLLL          ~LLLLLL`
        'LLL~             LLLLLLLLLm  iLLLLL             ~LLL~
         ~`               LLLLLLLL[LLmLLLLLL               '`
                          LLLLLL`d[ LLLLLLLL
                          LLLLLLdL[ LLLLLLLL
                          LLLLLLLLLLLLLLLLLL    Juergen Jakubowski
                          LLLLLLLLLLLLLLLLLL
                          LLLLLLLLLLLLLLLLLL   [email protected]

                          EXPLOIT BY ztrxwzy. 
              INSPIRED BY THE POC FROM Baptiste Contreras.
    
[888] Target : http://10.66.187.202:80/index.php
[888] CSRF token : 3ec54b1b32b5dc2dd8186537821b8dc1
[888] http://10.66.187.202:80/index.php is vulnerable to SQLi
[888] Database version detected : 5.5.64-MariaDB
[888] Current database : joomla
[888] Tables in database joomla

Credits & Autor

  • Autor: ztrxwzy
  • Inspiration: Teile dieses PoC sind von der Arbeit von Baptiste Contreras inspiriert:
    https://github.com/BaptisteContreras/CVE-2017-8917-Joomla

Lizenz

MIT License Copyright (c) 2025 Jesús Caldera

Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die „Software“) erhält, kostenlos die Erlaubnis erteilt, uneingeschränkt mit der Software zu handeln, einschließlich und ohne Einschränkung der Rechte zur Nutzung, zum Kopieren, Modifizieren, Zusammenführen, Veröffentlichen, Verteilen, Unterlizenzieren und/oder Verkaufen von Kopien der Software, und Personen, denen die Software bereitgestellt wird, dies unter den folgenden Bedingungen zu gestatten:

Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.

DIE SOFTWARE WIRD „WIE BESEHEN“ BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER IMPLIZITE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERECHTSINHABER FÜR ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNG VERANTWORTLICH, OB IN EINEM VERTRAG, UNAUSGEFÜHRTER HANDLUNG ODER ANDERWEITIG, DIE AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN HANDHABUNG DER SOFTWARE ENTSTEHEN.

Tool herunterladen