
Эксплуатируемая цель для CVE-2017-5638
Полностью основан на https://github.com/piesecurity/apache-struts2-CVE-2017-5638
Реалистичный сценарий, в котором эталонный проект для фреймворка развернут на контейнере, но с ужасными последствиями. Чтобы ознакомиться, посмотрите на код и скомпилируйте его. Также изучите dockerfile — есть ли что-то конкретное, что привлекает наше внимание?
Показывает, как легко можно использовать повседневные решения и множественные уязвимости в цепочке.
Предварительные требования:
Для подготовки:
./mvnw clean package в корне проектаdocker build -t hackme \.docker run -d -p 9080:8080 hackmeПримечание: если Docker не установлен, можно выполнить ./mvnw jetty:run
Чтобы начать тестирование RCE — запустите файл exploit.py:
python exploit.py http://localhost:9080/orders/3 "CMD"java -jar jython*.jar exploit.py http://localhost:9080/orders/3 "CMD"Попробуйте различные CMD, например:
pwd - где мы находимся?whomai - под каким пользователем это выполняется?ls -la - что в моей директории?ls / - что представляет собой моя машинаls /etc - что еще можно найти?Используйте панель информации о компонентах Nexus Lifecycle для определения не уязвимой версии struts2-core. Обновите POM до этой версии и пересоберите. Также можно пересобрать Docker-образ и запустить его, чтобы повторить атаку.
Также посмотрите Issues здесь, чтобы увидеть результаты 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.