
Una vulnerabilidad de seguridad crítica, identificada como CVE-2023-50164 (CVE: 9.8), fue encontrada en Apache Struts, permitiendo a los atacantes manipular los parámetros de carga de archivos, lo que puede conducir potencialmente a un recorrido de directorios no autorizado (path traversal) y a la ejecución remota de código (RCE).
Se encontró una vulnerabilidad de seguridad crítica, identificada como CVE-2023-50164 (CVE: 9.8), en Apache Struts, que permite a los atacantes manipular los parámetros de subida de archivos, lo que potencialmente puede conducir a un path traversal no autorizado y a la ejecución remota de código (RCE).
Este script de exploit está escrito para un análisis de CVE en vsociety.
Se desarrolla una aplicación ficticia simple con fines de demostración (ver la carpeta struts-app).
Puedes desplegarla en Tomcat o en cualquier otro servlet, o ejecutarla con mvn jetty:run.
En este último caso, puedes acceder a la aplicación en el puerto 9999.
El script de exploit solo funciona en los casos en que la aplicación está desplegada en Tomcat, ya que la ruta de explotación consiste en subir un webshell WAR.
Sin embargo, muchas otras rutas de explotación pueden funcionar con la misma vulnerabilidad según las tecnologías utilizadas y otras circunstancias.
Despliega la aplicación de exploit en Docker:
docker container stop exploit
docker build -t exploit .
docker run -d --rm --name exploit -p 8080:8080 exploit
Instala los paquetes pip:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Luego, ejecuta el script de exploit:
Para Docker:
python3 exploit.py --url http://localhost:8080/upload-1.0.0/upload.action
Para Vagrant:
python3 exploit.py --url http://192.168.56.25:8080/upload-1.0.0/upload.action
Ten en cuenta que el exploit necesita una URL completa donde esté implementada la funcionalidad de subida de archivos.
Este script de exploit ha sido creado únicamente con fines de investigación y para el desarrollo de técnicas defensivas efectivas. No está destinado a ser utilizado para ninguna actividad maliciosa o no autorizada. El autor y el propietario del script rechazan cualquier responsabilidad o culpa por el mal uso o los daños causados por este software. Se insta a los usuarios a utilizar este software de manera responsable y solo de acuerdo con las leyes y regulaciones aplicables. Úsalo de manera responsable.