XSS e HTML Injection em site do Governo(base.gov.pt)
Recentemente visitei a página http://www.base.gov.pt/ que é usada para gestão dos contratos públicos. O portal contém toda a informação sobre todos os contratos celebrados ao abrigo do Código dos Contratos Públicos.
Timeline:
Experimentei a caixa de pesquisa, e verifiquei que é retornado o valor
pesquisado na página HTML. Tentei então injectar código HTML e obtive sucesso, conforme podemos verificar abaixo.
Fiz ainda alguns testes com a tool OWASP ZAP para verificar se estavam a
usar algum header HTML de prevenção de execução de javascript tal como o
"X-XSS-PROTECTION 1 mode=block" mas reparei que não estava
configurado...
Verifiquei que a injeção de HTML é simples, basta para isso escrever na caixa de pesquisa o
seguinte texto:
"<img src="https://i2.wp.com/upload.wikimedia.org/wikipedia/commons/2/26/You_Have_Been_Hacked!.jpg" />"E obtive a seguinte página:
Verifiquei também que era possível injetar Javascript na página o que torna a página vulneravel a XSS injection. Adicionando o seguinte código ao elemento <img> recebi o alerta da página:
De notar que as versões mais recentes do Google Chrome já protegem contra este tipo de ataques:
Para o Firefox também existem add-ons que evitam os ataques XSS, um bom exemplo disso é o "NoScript" - https://addons.mozilla.org/pt-pt/firefox/addon/noscript/
Este tipo de ataque é explorado passando um URL específico para a vítima e permite:
- induzir em erro a vítima com falsas publicações, pois podemos manipular toda a página;
- roubar credenciais, cookies, etc. utilizado para isso o javascript injection e engenharia social;
- perda de confiança dos utilizadores na segurança da estrutura governamental.
A correção para este tipo de problemas é simples:
- Adicionar os HTTP headers de prevenção, tal como o mostrado acima:
- Fazer escape client and server side de código HTML e Javascript nas input boxes.
Timeline:
- 01/06/2017 - encontrado o problema no site base.gov.pt
- 01/06/2017 - email enviado aos administradores do portal a dar o conhecimento da vulnerabilidade
- 08/06/2017 - recebi email de resposta à reclamação e a vulnerabilidade já foi corrigida!



Comentários
Enviar um comentário