Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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), а й 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)





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

 Орендодавець| Опубліковано 2021-12-19 12:10:22 |
Опубліковано 2021-12-20 23:09:51 |
Давайте подивимось на роботу боса
Опубліковано 26.12.2021 16:54:47 |
Приходь і вчися знову。。。。。。。
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com