
Conteneur Docker vulnérable pour Apache Struts 2 RCE CVE-2023-50164
Apache a récemment publié un avis concernant CVE-2023-50164, une vulnérabilité critique avec un score de sévérité de 9.8 qui affecte Apache Struts 2.
CVE-2023-50164 est étroitement liée à l'architecture Apache Struts d'une organisation et à la manière dont elle utilise sa fonction de téléchargement de fichiers, permettant un path traversal non autorisé qui pourrait être exploité pour télécharger un fichier malveillant et exécuter du code à distance (RCE).
Ce dépôt contient un Dockerfile pour comprendre et manipuler la vulnérabilité. Le code d'exploitation weaponisé n'est pas fourni.
Ci-dessous, les commandes pour exécuter le lab (vous pouvez copier/coller dans votre 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
Vérifiez avec CUrl pour tester la disponibilité de l'application.
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>
Bon pwn ! 😉

Ce projet est fortement inspiré du travail de Jakabakos.
Ci-dessous, une liste d'articles pour comprendre la faille :