Solução
Nome | Valor |
---|---|
Vulnerabilidade | Cross-site Scripting (XSS) |
CWE | CWE-79 |
OWASP Top Ten | A03_2021-Injection |
Essa é provavelmente a vulnerabilidade mais “manjada” de todas, mas como não sei quem vai ler esse livro, então resolvi começar bem devagar.
Essa é uma vulnerabilidade de XSS, que é quando um atacante consegue fazer a execução de código JavaScript em uma página. Com isso ele poderia fazer uma série de coisas, como:
- Roubar o token de autenticação do usuário, assim obtendo acesso a conta dele;
- Interagir automaticamente com a aplicação, como se fosse o usuário, para algum fim malicioso;
- Explorar uma vulnerabilidade no navegador do usuário e obter acesso à máquina dele.
Existem vários tipos de XSS e mais especificamente esse é um Reflected XSS (“XSS refletido” em tradução literal). Que é quando a aplicação web reexibe na página um dado que foi enviado para ela por um parâmetro sem tratar devidamente o input do usuário, assim o XSS se torna possível.
O XSS é uma vulnerabilidade categorizada como uma vulnerabilidade de injeção (injection), que é uma categoria de vulnerabilidades onde o atacante consegue fazer a execução não autorizada de código na aplicação.
Para fazer a injeção de JavaScript na página desse
exercício é simples: Basta inserir qualquer tag HTML no
campo de username
, inclusive a própria tag
script
seria possível.
Exemplo:
João<script>alert(document.domain)</script>
Tente fazer a execução de JavaScript na página sem usar a
tag script
.