
A Demonstração para CVE-2017-11427
Ambiente 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
Contas:
username: user_evil
password: iamuser1
email: [email protected]
username: user_normal
password: iamuser2
email: [email protected]
Análise de vulnerabilidade e prática do sistema de login único baseado em SAML
Primeiro, faça login como usuário user_evil. Utilize o Burp para interceptar o valor do campo SAMLResponse.

Selecione Action -> Send to Repeater para preparar os próximos passos.
Em seguida, clique em Forward para que o usuário user_evil seja autenticado com sucesso.

Decodifique o valor do campo SAMLResponse mencionado acima com URL decode primeiro, depois remova as quebras de linha e, por fim, decodifique com base64. Modifique o arquivo XML decodificado alterando emailAddress e Attribute para [email protected]<!-- -->.evil, ou seja, insira um comentário entre o e-mail original do usuário autenticado [email protected] e .evil.

Em seguida, codifique o XML modificado em base64, depois faça URL encode, substitua o valor original de SAMLResponse e obtenha uma nova sessão.

Use esta nova sessão para fazer login:

O user.email agora é [email protected], e o login como usuário user_normal foi bem-sucedido.