
Exploit de Prova de Conceito para Injeção EL no PrimeFaces 5.x (CVE-2017-1000486)
Prova de Conceito de Exploit para Injeção de EL no PrimeFaces 5.x (CVE-2017-1000486), uma vulnerabilidade RCE que pode ser usada para obter execução remota de código em um alvo.
Você pode encontrar uma excelente descrição da vulnerabilidade no blog Minded Security.
O exploit fornece uma função de ajuda que imprime todos os parâmetros importantes
./primefaces.py --help
PrimeFaces 5.x EL injection exploit (CVE-2017-1000486) by MOGWAI LABS
=====================================================================
usage: primefaces.py [-h] [-t] [-e EXTENSION] url [payload]
PrimeFaces 5.x EL injection exploit
positional arguments:
url The target URL (http/https)
payload File with the JavaScript (Rino/Nashorn) code to
execute or OS command
optional arguments:
-h, --help show this help message and exit
-t, --test Test mode (off by default)
-e EXTENSION, --extension EXTENSION
Extension of the target (xhtml, jsf)
O exploit fornece um modo de teste simples (parâmetro -t) que pode ser usado para verificar se um alvo é realmente vulnerável. Isso funciona enviando a seguinte expressão EL para o alvo, que adicionará um campo de cabeçalho adicional à resposta HTTP. O cabeçalho é então verificado pelo exploit:
${facesContext.getExternalContext().setResponseHeader("MOGWAILABS","CHKCHK")}
A exploração real funciona invocando o interpretador JavaScript que acompanha a Máquina Virtual Java. Isso permite executar código Java arbitrário a partir do JavaScript.
O exploit fornece dois payloads de exemplo:
Observe que nenhum desses exemplos fornecerá a saída do comando.