Pular para o conteúdo

Web

Struts, o cabeçalho que vira expressão

Em 2017, a CVE-2017-5638 no Apache Struts foi a falha por trás de um dos maiores vazamentos de dados da história, o da Equifax. O Struts avalia expressões numa linguagem chamada OGNL. O problema: quando o pedido chegava com um tipo de conteúdo que o parser de upload não entendia, o Struts montava uma mensagem de erro que INCLUÍA o valor cru do cabeçalho, e essa mensagem era avaliada como OGNL. Então um %{...} colocado no cabeçalho certo era executado como código no servidor.

Você tem request.http (o pedido do ataque), JakartaMultiPartRequest.java (o trecho vulnerável do parser) e ognl_trace.py (mostra qual cabeçalho chega ao contexto OGNL). Rode python3 ognl_trace.py e diga qual cabeçalho HTTP carregava a expressão OGNL que acabava avaliada.

Responda no formato de flag com o nome do cabeçalho, por exemplo tocaia{accept} (que não é a resposta).

Arquivos do desafio

  • request.http

    177 B · SHA-256 f96ee51747786935…

    Baixar
  • JakartaMultiPartRequest.java

    742 B · SHA-256 714183f69d1dc33f…

    Baixar
  • ognl_trace.py

    607 B · SHA-256 36ec47e603e6bcd3…

    Baixar

Tudo se resolve com ferramentas gratuitas.