În ultimele două zile, a fost swipe de "vulnerabilitatea de execuție la distanță a codului Apache Log4j2" din cercul prietenilor, în principal din cauza vulnerabilității Java JNDI injection din componentă: când programul scrie datele introduse de utilizator în jurnal, atacatorul construiește o cerere specială pentru a declanșa vulnerabilitatea de execuție la distanță a codului în Apache Log4j2, exploatând astfel această vulnerabilitate pentru a executa cod arbitrar pe serverul țintă.
Sfera de influență
Apache Log4j 2.x <= 2.14.1
JNDI (Java Naming and Directory Interface) este o interfață de denumire și directoare Java oferită de Java. Prin apelarea API-ului JNDI, aplicațiile pot localiza resurse și alte obiecte de program. JNDI este o parte importantă a Java EE, trebuie menționat că nu include doar DataSource (sursa de date JDBC), ci și JNDI poate accesa directoare și servicii existente precum: JDBC, LDAP, RMI, DNS, NIS, CORBA, extras din Enciclopedia Baidu. Există multe articole pe Internet despre cum să corectezi vulnerabilitățile și capturi de ecran ale vulnerabilităților, dar puțin despre cum să testezi proiectul pentru vulnerabilitate.Java folosește Log4j2 pentru a testa codul în principalAșa cum urmează:
Pe scurt, Log4j2 va accesa următoarea adresă prin protocolul RMI sau LDAP și, conform conținutului protocolului, poate executa cod construit malefic.
Existența vulnerabilității este aproape întotdeauna dovedită pe Internet prin deschiderea unui calculator Windows, iar codul este următorul:
Deoarece Log4J2 folosește protocoale RMI sau LDAP pentru a accesa serverul atacatorului, iar atât protocoalele RMI cât și LDAP sunt bazate pe TCP, putem face asta directFolosind .NET pentru a asculta pe un port TCP, dacă un apel către log4j2 pentru a imprima jurnalele accesează portul de ascultare .NET, se dovedește că ar putea exista o vulnerabilitate, iar dacă nu, devine sigur。
.NET generează programe de testare foarte mici6kb, codul este următorul:
Încearcă să folosești componenta log4j2.14.0Versiunea este tipărită, iar redarea este următoarea:
Încearcă să upgradezi componenta log4j la2.15.0versiune, executată din nou, efectul este următorul:
După actualizarea versiunii, se constată că după apelarea jurnalului de printare,Programul Java nu mai accesează portul extern。
Prieteni interesați, puteți consulta următorul link pentru a reproduce vulnerabilitatea și a accesa calculatorul.
Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.
În final, atașați procedura de testare:
测试程序.rar
(2.66 KB, Numărul de descărcări: 1)
|