
Objetivo explotable para CVE-2017-5638
Completamente basado en https://github.com/piesecurity/apache-struts2-CVE-2017-5638
Un escenario realista donde un proyecto de referencia para un framework se despliega en un contenedor pero con terribles consecuencias. Para familiarizarte, mira el código y compílalo. También investiga el dockerfile: ¿hay algo específico que llame nuestra atención?
Muestra cómo las decisiones cotidianas y múltiples vulnerabilidades en cadena pueden ser aprovechadas fácilmente.
Requisitos previos:
Para preparar:
./mvnw clean package en la raíz del proyectodocker build -t hackme \.docker run -d -p 9080:8080 hackmeNota: si no tienes Docker instalado, puedes ejecutar ./mvnw jetty:run
Para comenzar a probar RCE, ejecuta el archivo exploit.py:
python exploit.py http://localhost:9080/orders/3 "CMD"java -jar jython*.jar exploit.py http://localhost:9080/orders/3 "CMD"Prueba con diferentes CMDs como
pwd - ¿dónde estamos?whomai - ¿bajo qué usuario estamos ejecutando esto?ls -la - ¿qué hay en mi directorio?ls / - ¿qué hay en mi máquina?ls /etc - ¿qué más podemos encontrar?Usa el Panel de Información de Componentes de Nexus Lifecycle para identificar una versión no vulnerable de struts2-core. Actualiza el POM a esa versión y recompila. También puedes reconstruir la imagen Docker y ejecutarla para reintentar el ataque.
Además, mira los Issues aquí para ver los hallazgos de DepShield
https://github.com/apache/struts/tree/master/apps/rest-showcase
README.txt - Rest Showcase Webapp
Rest Showcase is a simple example of REST app build with the REST plugin.
For more on getting started with Struts, see
* http://cwiki.apache.org/WW/home.html
I18N:
=====
Please note that this project was created with the assumption that it will be run
in an environment where the default locale is set to English. This means that
the default messages defined in package.properties are in English. If the default
locale for your server is different, then rename package.properties to package_en.properties
and create a new package.properties with proper values for your default locale.