
La demostración de CVE-2017-11427
Entorno básico
$ sudo apt-get install libxml2-dev libxslt1-dev
$ sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl
DEMO:
$ git clone https://github.com/CHYbeta/CVE-2017-11427-DEMO.git
$ cd CVE-2017-11427-DEMO
$ source venv/bin/active
$ cd vuln_saml
$ python index.py
Cuentas:
username: user_evil
password: iamuser1
email: [email protected]
username: user_normal
password: iamuser2
email: [email protected]
Análisis y práctica de vulnerabilidades en un sistema de inicio de sesión único basado en SAML
Primero inicie sesión con el usuario user_evil. Capture el valor del campo SAMLResponse con Burp.

Seleccione Action -> send to repeater para preparar los siguientes pasos.
Luego Forward, para que el usuario user_evil se autentique correctamente.

Tome el valor del campo SAMLResponse anterior, primero decodifique URL, luego elimine los saltos de línea y finalmente decodifique en base64. En el archivo XML descodificado, modifique emailAddress y Attribute a [email protected]<!-- -->.evil, es decir, inserte un comentario entre el correo del usuario autenticado original [email protected].

A continuación, codifique el XML modificado en base64, luego codifique en URL, reemplace el valor original de SAMLResponse y obtenga una nueva sesión.

Use esta nueva sesión para iniciar sesión:

El user.email se ha convertido en [email protected], iniciando sesión correctamente como el usuario user_normal.