
Aplicação Java vulnerável à vulnerabilidade CVE-2021-44228 (também conhecida como log4shell)
Esta aplicação de demonstração é vulnerável ao CVE-2021-44228, também conhecido como Log4Shell. Por exemplo, pode ser usada para validar um script de deteção ou remediação.
Compile a aplicação:
mvn clean package
Ou, em alternativa, descarregue o JAR pré-compilado.
Execute a aplicação (no subdiretório target se a compilou localmente):
java -Dlog4shell.all -jar log4shell-honeypot-capsule.jar
A aplicação não é vulnerável por predefinição. Precisa de definir a propriedade de sistema
log4shell.allpara ativar as vulnerabilidades (ou pode usar opções específicas de vulnerabilidade, veja abaixo).
log4shell.userAgent para registar o cabeçalho HTTP .User-Agentlog4shell.authorization para registar o cabeçalho HTTP Authorization.log4shell.basicAuth para registar o par utilizador/palavra-passe descodificado da autenticação básica.log4shell.urlPath para registar o caminho do URL.log4shell.urlQuery para registar a string de consulta do URL.log4shell.all para registar tudo o acima mencionado.Um valor de propriedade vazio é suficiente.
Para ativar a autenticação básica na aplicação, ative o perfil de configuração basicAuth:
java -Dseedstack.profiles=basicAuth -Dlog4shell.all -jar target/log4shell-honeypot-capsule.jar
demodemoQuando a autenticação básica está ativada, a aplicação não pode ser vulnerável à injeção de utilizador/palavra-passe.
Faça um pedido GET ou POST em qualquer caminho com um payload malicioso localizado de acordo com as opções acima:
Exemplo com o cabeçalho User-agent:
curl http://localhost:8080 -A "<malicious-user-agent>"
A aplicação emitirá um 302 para /test, que contém a vulnerabilidade.