
Container docker vulnerabile per Apache Struts 2 RCE CVE-2023-50164
Apache ha recentemente pubblicato un advisory relativo a CVE-2023-50164, una vulnerabilità critica con un punteggio di gravità di 9.8 che colpisce Apache Struts 2.
CVE-2023-50164 è strettamente legata all'architettura Apache Struts di un'organizzazione e al modo in cui viene utilizzata la funzionalità di upload dei file, consentendo un path traversal non autorizzato che potrebbe essere sfruttato per caricare un file dannoso ed eseguire codice in remoto (RCE).
Questo repository contiene un Dockerfile per comprendere e manipolare la vulnerabilità. Il codice exploit weaponizzato non viene fornito.
Di seguito, i comandi per eseguire il lab (puoi copiarli/incollarli nella tua shell):
git clone https://github.com/Trackflaw/CVE-2023-50164-ApacheStruts2-Docker.git
cd CVE-2023-50164-ApacheStruts2-Docker
docker build --ulimit nofile=122880:122880 -m 3G -t cve-2023-50164 .
docker run -p 8080:8080 --ulimit nofile=122880:122880 -m 3G --rm -it --name cve-2023-50164 cve-2023-50164
curl http://localhost:8080/upload.action
Verifica con CUrl la disponibilità dell'app.
curl http://localhost:8080/upload.action
<html>
<head>
<title>File upload</title>
</head>
<body>
<h1>💣 CVE-2023-50164</h1>
<p>Welcome to CVE-2023-50164 lab. You can practice with the file upload feature below. Find a way yo bypass the filter 😉</p>
<form id="upload" name="upload" action="/upload.action" method="post" enctype="multipart/form-data">
<table class="wwFormTable">
<tr>
<td class="tdLabel"></td>
<td class="tdInput"><input type="file" name="upload" id="upload_upload" /></td>
</tr>
<tr>
<td colspan="2">
<div class="formButton"><input type="submit" value="Submit" id="upload_0" />
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
Buon pwn! 😉

Questo progetto è fortemente ispirato al lavoro di Jakabakos.
Di seguito, l'elenco degli articoli per comprendere la falla: