
Die Demo für CVE-2017-11427
Grundlegende Umgebung
$ 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
Konten:
username: user_evil
password: iamuser1
email: [email protected]
username: user_normal
password: iamuser2
email: [email protected]
Sicherheitslückenanalyse und Praxis: Ein auf SAML basierendes Single-Sign-On-System
Melden Sie sich zunächst als Benutzer user_evil an. Fangen Sie mit Burp den Wert des Feldes SAMLResponse ab.

Wählen Sie Action -> Send to Repeater, um sich auf die nächsten Schritte vorzubereiten.
Klicken Sie dann auf Forward, damit der Benutzer user_evil erfolgreich authentifiziert wird.

Führen Sie zuerst eine URL-Dekodierung des SAMLResponse-Feldwerts durch, entfernen Sie dann Zeilenumbrüche und dekodieren Sie schließlich Base64. Ändern Sie im dekodierten XML-Dokument die Werte von emailAddress und Attribute in [email protected]<!-- -->.evil, d.h. fügen Sie einen Kommentar zwischen die ursprüngliche E-Mail-Adresse des authentifizierten Benutzers [email protected] ein.

Kodieren Sie das geänderte XML dann als Base64, dann URL-Kodierung, ersetzen Sie den ursprünglichen SAMLResponse-Wert und erhalten Sie eine neue Session.

Verwenden Sie diese neue Session, um sich anzumelden:

Die user.email wurde zu [email protected] geändert. Der Benutzer user_normal ist erfolgreich angemeldet.