
Cible exploitable pour CVE-2017-5638
Entièrement basé sur https://github.com/piesecurity/apache-struts2-CVE-2017-5638
Un scénario réaliste dans lequel un projet de référence pour un framework est déployé sur un conteneur, mais avec des conséquences terribles. Pour vous familiariser, examinez le code et compilez-le. Inspectez également le dockerfile - y a-t-il quelque chose de spécifique qui attire notre attention ?
Montre à quel point les décisions quotidiennes et de multiples vulnérabilités en chaîne peuvent être facilement exploitées.
Prérequis :
Pour préparer :
./mvnw clean package à la racine du projetdocker build -t hackme \.docker run -d -p 9080:8080 hackmeRemarque : si vous n'avez pas Docker installé, vous pouvez exécuter ./mvnw jetty:run
Pour commencer à tester la RCE - exécutez le fichier exploit.py :
python exploit.py http://localhost:9080/orders/3 "CMD"java -jar jython*.jar exploit.py http://localhost:9080/orders/3 "CMD"Essayez avec différentes commandes, par exemple :
pwd - où sommes-nous ?whomai - sous quel utilisateur exécutons-nous ceci ?ls -la - qu'y a-t-il dans mon répertoire ?ls / - qu'y a-t-il sur ma machinels /etc - que peut-on trouver d'autre ?Utilisez le panneau d'informations sur les composants de Nexus Lifecycle pour identifier une version non vulnérable de struts2-core. Mettez à jour le POM vers cette version et reconstruisez. Vous pouvez également reconstruire l'image Docker et l'exécuter pour réessayer l'attaque.
Consultez également les Issues ici pour voir les résultats 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.