
Java-приложение, уязвимое к CVE-2021-44228 (также известной как log4shell)
Это демонстрационное приложение уязвимо к CVE-2021-44228, также известному как Log4Shell. Например, его можно использовать для проверки скрипта обнаружения или устранения уязвимости.
Соберите приложение:
mvn clean package
Или, альтернативно, скачайте готовый JAR.
Запустите приложение (в подкаталоге target, если вы собрали его локально):
java -Dlog4shell.all -jar log4shell-honeypot-capsule.jar
По умолчанию приложение не уязвимо. Вам необходимо установить системное свойство
log4shell.all, чтобы включить уязвимости (или вы можете использовать параметры, специфичные для конкретной уязвимости, см. ниже).
log4shell.userAgent, чтобы записывать HTTP-заголовок .User-Agentlog4shell.authorization, чтобы записывать HTTP-заголовок Authorization.log4shell.basicAuth, чтобы записывать пару пользователь/пароль, декодированную из базовой аутентификации.log4shell.urlPath, чтобы записывать путь URL.log4shell.urlQuery, чтобы записывать строку запроса URL.log4shell.all, чтобы записывать всё вышеперечисленное.Пустого значения свойства достаточно.
Чтобы включить базовую аутентификацию в приложении, активируйте профиль конфигурации basicAuth:
java -Dseedstack.profiles=basicAuth -Dlog4shell.all -jar target/log4shell-honeypot-capsule.jar
demodemoКогда базовая аутентификация включена, приложение не может быть уязвимо к инъекции пользователь/пароль.
Выполните GET или POST запрос на любой путь с вредоносной полезной нагрузкой, расположенной в соответствии с параметрами выше:
Пример с заголовком User-agent:
curl http://localhost:8080 -A "<malicious-user-agent>"
Приложение выдаст ответ 302 на /test, который содержит уязвимость.