
La demo per CVE-2017-11427
Ambiente base
$ 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
Account:
username: user_evil
password: iamuser1
email: [email protected]
username: user_normal
password: iamuser2
email: [email protected]
Analisi della vulnerabilità e pratica del sistema di Single Sign-On basato su SAML
Prima di tutto, accedi come utente user_evil. Intercetta il valore del campo SAMLResponse con Burp.

Seleziona Action -> send to repeater per prepararsi ai passaggi successivi.
Successivamente, inoltra la richiesta per completare l'autenticazione dell'utente user_evil.

Decodifica prima il valore del campo SAMLResponse con URL-decode, poi rimuovi i caratteri di newline e infine decodificalo con base64. Nel file XML decodificato, modifica emailAddress e Attribute in [email protected]<!-- -->.evil, ovvero inserisci un commento tra l'email originale dell'utente autenticato [email protected].

Successivamente, codifica l'XML modificato con base64, poi con URL-encode, e sostituisci il valore originale di SAMLResponse per ottenere una nuova sessione.

Utilizza questa nuova sessione per effettuare l'accesso:

user.email è ora diventato [email protected], e l'accesso come utente user_normal è riuscito.