Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 10163|Ответ: 4

[Источник] Программа .NET тестирует Java-проект log4j2 на уязвимость удаленного выполнения кода

[Скопировать ссылку]
Опубликовано 2021-12-11 21:06:29 | | | |
За последние два дня она была прокрадена уязвимостью «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)





Предыдущий:[Настоящий бой]. NET/C# Создайте базу данных SQLite и просто добавляйте, удаляйте, изменяйте
Следующий:Обучающее обучение по развертыванию системы CentOS nacos
 Хозяин| Опубликовано 2021-12-13 13:37:35 |
После Java 8 121 для воспроизведения уязвимости требуются следующие конфигурации:

 Хозяин| Опубликовано 19.12.2021 12:10:22 |
Опубликовано 2021-12-20 23:09:51 |
Давайте посмотрим работу босса
Опубликовано 26.12.2021 16:54:47 |
Приходите и учитесь снова。。。。。。。
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com