
La démo pour CVE-2017-11427
Environnement de base
$ sudo apt-get install libxml2-dev libxslt1-dev
$ sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl
DÉMO:
$ 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
Comptes:
username: user_evil
password: iamuser1
email: [email protected]
username: user_normal
password: iamuser2
email: [email protected]
Analyse des vulnérabilités et pratique du système d'authentification unique basé sur SAML
Connectez-vous d'abord en tant qu'utilisateur user_evil. Utilisez Burp pour intercepter la valeur du champ SAMLResponse.

Sélectionnez Action -> Send to Repeater, pour préparer la suite.
Ensuite, Forward, pour que l'utilisateur user_evil soit authentifié avec succès.

Prenez la valeur du champ SAMLResponse ci-dessus, effectuez d'abord un urldecode, puis supprimez les sauts de ligne, et enfin effectuez un décodage base64. Dans le fichier XML décodé, modifiez emailAddress et Attribute en [email protected]<!-- -->.evil, c'est-à-dire insérez un commentaire dans l'email de l'utilisateur authentifié d'origine [email protected].

Ensuite, encodez le XML modifié en base64, puis en urlencode, remplacez la valeur originale de SAMLResponse, et obtenez une nouvelle session.

Utilisez cette nouvelle session pour vous connecter :

user.email est maintenant [email protected], connexion réussie en tant qu'utilisateur user_normal.