
Exploitable target to CVE-2017-5638
Baseado completamente em https://github.com/piesecurity/apache-struts2-CVE-2017-5638
Um cenário realista onde um projeto de referência para um framework é implantado em um container, mas com consequências terríveis. Para se familiarizar, veja o código e compile-o. Além disso, investigue o dockerfile - há algo específico que chama a atenção?
Mostra como decisões do dia a dia e múltiplas vulnerabilidades em cadeia podem ser exploradas facilmente.
Pré-requisitos:
Para preparar:
./mvnw clean package na raiz do projetodocker build -t hackme \.docker run -d -p 9080:8080 hackmeAviso: se você não tiver o Docker instalado, pode executar ./mvnw jetty:run
Para começar a testar RCE - execute o arquivo exploit.py:
python exploit.py http://localhost:9080/orders/3 "CMD"java -jar jython*.jar exploit.py http://localhost:9080/orders/3 "CMD"Tente com diferentes CMDs como
pwd - onde estamos?whomai - qual usuário está executando isso?ls -la - o que há no meu diretório?ls / - qual é a minha máquinals /etc - o que mais podemos encontrar?Use o Nexus Lifecycle Painel de Informações de Componentes para identificar uma versão não vulnerável do struts2-core. Atualize o POM para essa versão e reconstrua. Você também pode reconstruir a imagem Docker e executá-la para repetir o ataque.
Além disso, veja as Issues aqui para ver as descobertas do 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.