Останніми двома днями вона була прокрадена через «вразливість віддаленого виконання коду 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), а й JNDI може отримувати доступ до існуючих каталогів і сервісів, таких як: JDBC, LDAP, RMI, DNS, NIS, CORBA, взято з енциклопедії Baidu. В Інтернеті є багато статей про те, як виправити вразливості, і скріншоти їх, але мало про те, як протестувати проєкт на наявність цієї вразливості.Java переважно використовує Log4j2 для тестування кодуНаступним чином:
Простими словами, Log4j2 отримує доступ до наступної адреси через протокол RMI або LDAP, і відповідно до вмісту протоколу може виконувати навмисно створений код.
Існування цієї вразливості майже завжди доводиться в Інтернеті, відкриваючи калькулятор Windows, і код виглядає так:
Оскільки Log4J2 використовує протоколи RMI або LDAP для доступу до сервера зловмисника, а обидва протоколи RMI та LDAP базуються на TCP, ми можемо робити це безпосередньоВикористовуючи .NET для прослуховування на TCP-порту, якщо виклик log4j2 для друкування журналів звертається до порту .NET для прослуховування, це доводить, що може існувати вразливість, а якщо ні — це безпечно。
.NET генерує дуже маленькі тестові програми6 КБ, код виглядає так:
Спробуйте використати компонент log4j2.14.0Версія надрукована, а рендеринг виглядає так:
Спробуйте оновити компонент log4j до2.15.0Версія, виконана знову, ефект виглядає так:
Після оновлення версії виявилося, що після виклику журналу друку,Java-програма більше не отримує доступ до зовнішнього порту。
Зацікавлені друзі, ви можете звернутися за наступним посиланням, щоб відтворити вразливість і викликати калькулятор.
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.
Нарешті, додайте процедуру тестування:
测试程序.rar
(2.66 KB, Кількість завантажень: 1)
|