
Verwundbarer Docker-Container für Apache Struts 2 RCE CVE-2023-50164
Apache hat kürzlich ein Advisory zu CVE-2023-50164 veröffentlicht, einer kritischen Schwachstelle mit einem Schweregrad von 9.8, die Apache Struts 2 betrifft.
CVE-2023-50164 ist eng mit der Apache-Struts-Architektur einer Organisation und der Art und Weise verbunden, wie sie ihre Datei-Upload-Funktion nutzt. Sie ermöglicht einen unbefugten Path Traversal, der missbraucht werden könnte, um eine schädliche Datei hochzuladen und Remote Code Execution (RCE) durchzuführen.
Dieses Repository enthält ein Dockerfile, um die Schwachstelle zu verstehen und zu manipulieren. Der weaponisierte Exploit-Code wird nicht bereitgestellt.
Im Folgenden die Befehle zum Ausführen des Labs (du kannst sie in deine Shell kopieren/einfügen):
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
Überprüfe mit CUrl die Verfügbarkeit der 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>
Viel Spaß beim Pwnen! 😉

Dieses Projekt ist stark von der Arbeit von Jakabakos inspiriert.
Im Folgenden eine Liste von Artikeln, um den Fehler zu verstehen: