За последние два дня она была прокрадена уязвимостью «Apache Log4j2 удалённого выполнения кода» в кругу друзей, главным образом из-за уязвимости инъекции Java JNDI в компоненте: когда программа записывает данные, введённые пользователем, в журнал, злоумышленник создаёт специальный запрос для запуска уязвимости удаленного выполнения кода в Apache Log4j2, тем самым используя эту уязвимость для выполнения произвольного кода на целевом сервере.
Сфера влияния
Apache Log4j 2.x <= 2.14.1
JNDI (Java Nameing and Directory Interface) — это интерфейс для именования и каталогов на Java, предоставляемый компанией Java. Вызывая API JNDI, приложения могут находить ресурсы и другие объекты программы. JNDI является важной частью Java EE, следует отметить, что он включает не только DataSource (источник данных JDBC), но и позволяет получать доступ к существующим каталогам и сервисам, таким как: JDBC, LDAP, RMI, DNS, NIS, CORBA, взято из Baidu-энциклопедии. В интернете много статей о том, как исправить уязвимости, и скриншотов уязвимостей, но мало о том, как проверить проект на наличие уязвимости.Java в основном использует Log4j2 для тестирования кодаСледующим образом:
Проще говоря, Log4j2 получает доступ к следующему адресу через протокол RMI или LDAP, и в зависимости от содержания протокола может выполнять злонамеренно сконструированный код.
Существование уязвимости почти всегда подтверждается в Интернете, открыв калькулятор Windows, и код выглядит следующим образом:
Поскольку Log4J2 использует протоколы RMI или LDAP для доступа к серверу злоумышленника, а оба протокола RMI и LDAP основаны на TCP, мы можем делать это напрямуюИспользуя .NET для прослушивания на TCP-порте, если вызов log4j2 для печати логов обращается к порту .NET прослушивания, это доказывает наличие уязвимости, а если нет — безопасность。
.NET генерирует очень небольшие тестовые программы6kb, код следующий:
Попробуйте использовать компонент log4j2.14.0Версия печатается, а рендеринг выглядит следующим образом:
Попробуйте обновить компонент log4j до2.15.0Повторная версия, эффект выглядит следующим образом:
После обновления версии выяснилось, что после вызова журнала печати,Java-программа больше не обращается к внешнему порту。
Заинтересованные друзья, вы можете воспроизвести уязвимость по следующей ссылке и воспроизвести калькулятор.
Вход по гиперссылке виден.
Вход по гиперссылке виден.
Наконец, приложите процедуру тестирования:
测试程序.rar
(2.66 KB, Количество скачиваний: 1)
|