
Questo exploit è stato sviluppato specificamente per il laboratorio Strutted della HackTheBox, con l'obiettivo di sfruttare la vulnerabilità CVE-2023-50164 in Apache Struts 2. Il difetto consente path traversal attraverso un errore nella gestione dei parametri di upload dei file. L'exploit è stato creato con lo scopo di dimostrare come un attaccante possa effettuare upload di file malevoli e ottenere esecuzione remota di codice (RCE).
Questo exploit è stato sviluppato esclusivamente a scopo educativo all'interno dell'ambiente controllato di HackTheBox e non deve essere utilizzato su sistemi reali senza esplicita autorizzazione. Lo sfruttamento di vulnerabilità senza consenso è illegale e antietico.
L'obiettivo di questo exploit è dimostrare come il difetto in Apache Struts 2, in particolare nell'endpoint di upload dei file, possa essere sfruttato per:
La vulnerabilità CVE-2023-50164 è associata alla gestione errata dei parametri di upload dei file, consentendo a un attaccante di manipolare il nome del file inviato per effettuare path traversal.
Manipolazione del Parametro HTTP: L'exploit modifica i parametri HTTP per includere caratteri di traversal di directory (../), consentendo l'upload di un file malevolo in una cartella non autorizzata.
Invio del File Malevolo: L'exploit invia un file malevolo usando il metodo POST sull'endpoint /upload.action, sfruttando il difetto di case sensitivity dei parametri HTTP.
Esecuzione di Codice Remoto: L'attaccante può inserire codice malevolo che verrà eseguito sul server dopo l'upload.
Di seguito è riportato un esempio di richiesta HTTP che può essere utilizzata per sfruttare la vulnerabilità:
POST /upload.action HTTP/1.1
Host: vulnerable-server.com
Content-Type: multipart/form-data; boundary=------------------------abcdef
--------------------------abcdef
Content-Disposition: form-data; name="Upload"; filename="img.png"
Content-Type: application/octet-stream
PNG
--------------------------abcdef
Content-Disposition: form-data;
Content-Type: application/octet-stream
../../shell.jsp
--------------------------abcdef--