
CVE-2017-11427のデモ
基本環境
$ 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
アカウント:
username: user_evil
password: iamuser1
email: [email protected]
username: user_normal
password: iamuser2
email: [email protected]
SAMLに基づくシングルサインオンシステムの脆弱性分析と実践
最初にユーザー user_evil でログインします。burpでSAMLResponseフィールドの値をキャプチャします。

Action-> send to repeater を選択し、後続の操作に備えます。
次に Forward を押し、ユーザー user_evil の認証を成功させます。

上記のSAMLResponseフィールドの値を先にurldecodeし、改行を削除してからbase64デコードします。デコードされたXMLファイル内の emailAddress と を に書き換えます。つまり、元の認証ユーザーのメールアドレス の間にコメントを挿入します。
Attribute[email protected]<!-- -->.evil
次に、変更したXMLをbase64エンコードし、続いてurlencodeして、元のSAMLResponseの値を置き換え、新しいセッションを取得します。

この新しいセッションでログインします。

user.email が [email protected] に変更され、ユーザー user_normal としてログインが成功しました。