
Applicazione Java vulnerabile alla vulnerabilità CVE-2021-44228 (nota anche come log4shell)
Questa applicazione demo è vulnerabile alla CVE-2021-44228, nota anche come Log4Shell. Ad esempio, può essere utilizzata per validare uno script di rilevamento o di remediation.
Compila l'applicazione:
mvn clean package
Oppure, in alternativa, scarica il JAR precompilato.
Esegui l'applicazione (nella sottodirectory target se l'hai compilata localmente):
java -Dlog4shell.all -jar log4shell-honeypot-capsule.jar
L'applicazione non è vulnerabile per impostazione predefinita. Devi impostare la proprietà di sistema
log4shell.allper abilitare le vulnerabilità (oppure puoi utilizzare opzioni specifiche per singola vulnerabilità, vedi sotto).
log4shell.userAgentUser-Agentlog4shell.authorization per registrare l'header HTTP Authorization.log4shell.basicAuth per registrare la coppia utente/password decodificata dall'autenticazione di base.log4shell.urlPath per registrare il percorso dell'URL.log4shell.urlQuery per registrare la stringa di query dell'URL.log4shell.all per registrare tutto quanto sopra.Un valore di proprietà vuoto è sufficiente.
Per abilitare l'autenticazione di base sull'applicazione, attiva il profilo di configurazione basicAuth:
java -Dseedstack.profiles=basicAuth -Dlog4shell.all -jar target/log4shell-honeypot-capsule.jar
demodemoQuando l'autenticazione di base è abilitata, l'applicazione non può essere vulnerabile all'iniezione di utente/password.
Effettua una richiesta GET o POST su qualsiasi percorso con un payload dannoso posizionato in base alle opzioni sopra indicate:
Esempio con l'header User-agent:
curl http://localhost:8080 -A "<malicious-user-agent>"
L'app restituirà un 302 verso /test che contiene la vulnerabilità.