Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
log4j-log4shell-playground — Un banco di prova per sperimentare le mitigazioni della vulnerabilità Log4Shell (CVE-2021-44228) | Kitploit
Strumenti/GitHubGitHub/rgl/log4j-log4shell-playground
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubrgl/log4j-log4shell-playground

log4j-log4shell-playground

Un banco di prova per sperimentare le mitigazioni della vulnerabilità Log4Shell (CVE-2021-44228)

Vedi Repository
14 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Informazioni

Un parco giochi per sperimentare con le mitigazioni della vulnerabilità critica log4j (nota anche come Log4Shell) (CVE-2021-44228).

Questo particolare problema risiede nella funzionalità JndiLookup e nella capacità di log4j di interpretare TUTTI gli argomenti di una chiamata di logging.

Ci si aspetterebbe che interpreti solo il messaggio di formato (il primo argomento di una chiamata di logging), ad esempio il Hello {} in log.info("Hello {}", "${jndi:ldap://127.0.0.1:8081}"), ma invece li interpreta tutti.

Le mitigazioni impediscono a log4j di attivare i lookup jndi, ma consentono comunque altri lookup come ${java:version}.

NB: dalla versione log4j 2.16.0 (LOG4J2-3211; diff) il messaggio di formato non viene più interpretato.

Questa vulnerabilità può essere attivata da remoto quando l'applicazione di destinazione registra qualsiasi dato fornito dall'utente, ad esempio, da queste comuni intestazioni HTTP:

  • Accept
  • Cookie
  • Location
  • Origin
  • Referer
  • User-Agent
  • X-Api-Version
  • X-Forwarded-For
  • X-Forwarded-Host
  • X-Requested-With

Prova (Ubuntu 20.04)

Compilazione:

root@kitploit:~
sudo apt-get install -y openjdk-11-jdk-headless
wget https://archive.apache.org/dist/logging/log4j/2.10.0/apache-log4j-2.10.0-bin.tar.gz
wget https://archive.apache.org/dist/logging/log4j/2.16.0/apache-log4j-2.16.0-bin.tar.gz
tar xf apache-log4j-2.10.0-bin.tar.gz
tar xf apache-log4j-2.16.0-bin.tar.gz
javac -Werror -cp apache-log4j-2.10.0-bin/log4j-api-2.10.0.jar Server.java

Prova una versione vulnerabile di log4j:

root@kitploit:~
java \
    -cp apache-log4j-2.10.0-bin/log4j-api-2.10.0.jar:apache-log4j-2.10.0-bin/log4j-core-2.10.0.jar:. \
    Server
curl -H 'X-Api-Version:${jndi:ldap://127.0.0.1:8081}' http://localhost:8080
curl -H 'X-Api-Version:${java:version}' http://localhost:8080

Prova a rimuovere la classe JndiLookup dal classpath come mitigazione:

root@kitploit:~
cp apache-log4j-2.10.0-bin/log4j-core-2.10.0.jar log4j-core-2.10.0-without-jndi-lookup.jar
zip -q -d log4j-core-2.10.0-without-jndi-lookup.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
java \
    -cp apache-log4j-2.10.0-bin/log4j-api-2.10.0.jar:log4j-core-2.10.0-without-jndi-lookup.jar:. \
    Server
curl -H 'X-Api-Version:${jndi:ldap://127.0.0.1:8081}' http://localhost:8080
curl -H 'X-Api-Version:${java:version}' http://localhost:8080

Prova la mitigazione tramite variabile d'ambiente:

NB Dal 2021-12-15 (all'incirca la data di rilascio di log4j 2.16.0 / CVE-2021-45046) questa non è più consigliata.

root@kitploit:~
LOG4J_FORMAT_MSG_NO_LOOKUPS=true \
    java \
    -cp apache-log4j-2.10.0-bin/log4j-api-2.10.0.jar:apache-log4j-2.10.0-bin/log4j-core-2.10.0.jar:. \
    Server
curl -H 'X-Api-Version:${jndi:ldap://127.0.0.1:8081}' http://localhost:8080
curl -H 'X-Api-Version:${java:version}' http://localhost:8080

Prova una versione di log4j non vulnerabile:

root@kitploit:~
java \
    -cp apache-log4j-2.16.0-bin/log4j-api-2.16.0.jar:apache-log4j-2.16.0-bin/log4j-core-2.16.0.jar:. \
    Server
curl -H 'X-Api-Version:${jndi:ldap://127.0.0.1:8081}' http://localhost:8080
curl -H 'X-Api-Version:${java:version}' http://localhost:8080

Prova grype per vedere se rileva la vulnerabilità:

root@kitploit:~
wget https://github.com/anchore/grype/releases/download/v0.27.2/grype_0.27.2_linux_amd64.tar.gz
tar xf grype_0.27.2_linux_amd64.tar.gz grype
./grype dir:.

Prova trivy per vedere se rileva la vulnerabilità:

root@kitploit:~
wget https://github.com/aquasecurity/trivy/releases/download/v0.21.2/trivy_0.21.2_Linux-64bit.tar.gz
tar xf trivy_0.21.2_Linux-64bit.tar.gz trivy
./trivy fs --security-checks vuln .

Riferimenti

  • https://www.lunasec.io/docs/blog/log4j-zero-day-mitigation-guide/
  • https://blog.cloudflare.com/inside-the-log4j2-vulnerability-cve-2021-44228/
  • https://logging.apache.org/log4j/2.x/security.html
  • https://logging.apache.org/log4j/2.x/manual/lookups.html#JndiLookup
Scarica lo strumento