
Java-приложение, намеренно уязвимое к CVE-2021-44228
Этот репозиторий содержит Java-приложение, намеренно уязвимое к CVE-2021-44228, широко известному как log4shell.
log4stdin — это буквально не более чем считыватель stdin, входные данные которого передаются уязвимому экземпляру log4j. Сборка log4stdin.jar использует артефакты Maven log4j-api 2.14.1 и log4j-core 2.14.1, а также шаблон логирования, который опускает уровень логирования и детали временных меток. Эта версия гарантированно уязвима™️.
В папке versions/ можно найти сборки, использующие стандартный шаблон логирования и версии log4j с 2.0-beta9 по 2.20.0.
Используйте конвейеры Unix для ввода. Например, чтобы подвергнуть записи журнала обработке на возможность внедрения, выполните
cat output.log | java -jar log4stdin.jar
В качестве альтернативы, для чтения журнала в реальном времени выполните
tail -f output.log | java -jar log4stdin.jar
log4stdin выводит всё, что подаётся на stdin, но ничего не делает для обработки пользовательского ввода. Поэтому он подходит для чтения файлов журнала, как показано выше, или для использования с программным обеспечением, не требующим взаимодействия с пользователем.
Содержимое этого репозитория, скорее всего, будет классифицировано антивирусами либо как заражённые файлы, либо как попытки выполнения вредоносных команд. Возможно, стоит исключить целевую папку из антивирусного сканирования перед клонированием репозитория. Ещё лучше опробовать его в виртуальной среде без сетевых подключений.
Во-первых, его можно использовать для изучения последствий наличия точки внедрения JNDI практически в любом месте, без необходимости форкать существующие программные продукты. Это может быть полезно при исследовании или тестировании методов защиты.
Во-вторых, это по сути «Hello World» в кибербезопасности, написанный, чтобы подчеркнуть как простоту, так и серьёзность уязвимости.
В-третьих, его можно использовать для проверки, способно ли антивирусное решение обнаружить программное обеспечение, эксплуатирующее CVE-2021-44228. Например, log4stdin.java или log4stdin.jar могут быть помечены как Generic.Zojfor.G.
В любом случае, независимо от того, для чего вы решите это использовать, вы несёте ответственность за любые последствия.
Лицензия MIT. Подробнее читайте в LICENSE.md.
Хотя больших усилий тут не потребовалось, не стесняйтесь воспроизводить эту вещь по собственному желанию, и никто за вами не погонится.
Copyright 1999–2023 The Apache Software Foundation
Лицензировано на условиях Apache License, Version 2.0 («Лицензия»); вы не можете использовать этот файл иначе, как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу
Если иное не предусмотрено применимым законодательством или не согласовано в письменной форме, программное обеспечение распространяется по Лицензии на условиях «AS IS», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, явных или подразумеваемых. См. Лицензию для получения сведений о разрешениях и ограничениях.