Hacking ético - Cross-Site Scripting

Cross-site scripting (XSS) é um ataque de injeção de código que permite a um invasor executar JavaScript malicioso no navegador de outro usuário.

O atacante não visa diretamente sua vítima. Em vez disso, ele explora uma vulnerabilidade em um site que a vítima visita, a fim de fazer com que o site entregue o JavaScript malicioso para ela. Para o navegador da vítima, o JavaScript malicioso parece ser uma parte legítima do site e, portanto, o site agiu como um cúmplice não intencional do invasor. Esses ataques podem ser realizados usando HTML, JavaScript, VBScript, ActiveX, Flash, mas o XSS mais usado é o JavaScript malicioso.

Esses ataques também podem reunir dados de sequestro de conta, alteração das configurações do usuário, roubo / envenenamento de cookies ou propaganda enganosa e criar ataques DoS.

Exemplo

Vamos dar um exemplo para entender como funciona. Temos uma página da web vulnerável que obtivemos pelometasploitablemáquina. Agora testaremos o campo destacado na seta vermelha para XSS.

Em primeiro lugar, fazemos um script de alerta simples

<script>  
   alert(‘I am Vulnerable’)  
</script>

Ele produzirá a seguinte saída -

Tipos de ataques XSS

Os ataques XSS são geralmente divididos em três tipos -

  • Persistent XSS, onde a string maliciosa se origina do banco de dados do site.

  • Reflected XSS, onde a string maliciosa se origina da solicitação da vítima.

  • DOM-based XSS, em que a vulnerabilidade está no código do lado do cliente, e não no código do servidor.

Geralmente, o cross-site scripting é encontrado por vulnerability scanners para que você não tenha que fazer todo o trabalho manual, colocando um JavaScript nele como

<script>  
   alert('XSS') 
</script>

Burp Suite e acunetix são considerados os melhores scanners de vulnerabilidade.

Dica rápida

Para evitar ataques XSS, tenha em mente os seguintes pontos -

  • Verifique e valide todos os campos do formulário, como formulários ocultos, cabeçalhos, cookies, strings de consulta.

  • Implemente uma política de segurança rigorosa. Defina a limitação de caracteres nos campos de entrada.