Negli ultimi due giorni, è stato spostato dalla "vulnerabilità di esecuzione remota del codice Apache Log4j2" nel cerchio di amici, principalmente a causa della vulnerabilità di iniezione Java JNDI nel componente: quando il programma scrive i dati inseriti dall'utente nel log, l'attaccante crea una richiesta speciale per attivare la vulnerabilità di esecuzione remota del codice in Apache Log4j2, sfruttando così questa vulnerabilità per eseguire codice arbitrario sul server target.
Ambito di influenza
Apache Log4j 2.x <= 2.14.1
JNDI (Java Naming and Directory Interface) è un'interfaccia di denominazione e directory Java fornita da Java. Chiamando l'API di JNDI, le applicazioni possono localizzare risorse e altri oggetti di programma. JNDI è una parte importante di Java EE, va notato che non include solo DataSource (sorgente dati JDBC), ma JNDI può accedere a directory e servizi esistenti come: JDBC, LDAP, RMI, DNS, NIS, CORBA, estratto dall'Enciclopedia Baidu. Ci sono molti articoli su Internet su come correggere le vulnerabilità e screenshot delle vulnerabilità, ma poco su come testare il progetto per individuare la vulnerabilità.Java utilizza principalmente Log4j2 per testare il codiceCome segue:
In termini semplici, Log4j2 accederà al seguente indirizzo tramite il protocollo RMI o LDAP e, secondo il contenuto del protocollo, può eseguire codice costruito in modo malevolo.
L'esistenza della vulnerabilità viene quasi sempre dimostrata su Internet aprendo una calcolatrice Windows, e il codice è il seguente:
Poiché Log4J2 utilizza protocolli RMI o LDAP per accedere al server dell'attaccante, e sia i protocolli RMI che LDAP sono basati su TCP, possiamo farlo direttamenteUsando .NET per ascoltare su una porta TCP, se una chiamata a log4j2 per stampare i log accede alla porta di ascolto .NET, dimostra che potrebbe esserci una vulnerabilità e, in caso contrario, risulta sicuro。
.NET genera programmi di test molto piccoli6kb, il codice è il seguente:
Prova a usare il componente log4j2.14.0La versione viene stampata e la resa è la seguente:
Prova ad aggiornare il componente log4j a2.15.0Versione, eseguita nuovamente, l'effetto è il seguente:
Dopo aver aggiornato la versione, si scopre che dopo aver chiamato il log di stampa,Il programma Java non accede più alla porta esterna。
Amici interessati, potete consultare il seguente link per riprodurre la vulnerabilità e richiamare la calcolatrice.
Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.
Infine, allega la procedura di test:
测试程序.rar
(2.66 KB, Numero di download: 1)
|