Ethical Hacking — Cross Site Scripting (XSS)

Rafael Renovaci
3 min readApr 9, 2019

--

Ataques disparados pela entrada do usuário são chamados de ataques de validação de entrada.

O que é um ataque de validação de entrada?

É quando a entrada maliciosa pode subverter com êxito o funcionamento de um aplicativo devido à validação insuficiente pelo aplicativo ou pelo servidor antes de usar os dados.

A maioria das vulnerabilidades de aplicativos da web é o resultado de um design de codificação ruim e da ignorância sobre as melhores práticas de metodologias de codificação seguras. Veremos algumas técnicas comuns de mitigação enquanto estudamos cada vulnerabilidade.

Os ataques de validação de entrada incluem XSS, injeções de SQL, adulteração HTTP Header e muitos outros. Teremos uma visão completa de cada um dos itens acima, pois todos eles têm suas técnicas exclusivas de descoberta e exploração. O script entre sites é um dos mais antigos ataques de aplicativos da Web conhecidos e é datado de 1996–1998 quando era possível controlar quadros em uma página da Web. código, cruzando assim os limites do site.

Atualmente, ele ainda está no topo do Top 10 do OWASP. Isso claramente mostra o quanto isso realmente é uma ameaça!

  • O que é XSS?

XSS é um tipo de vulnerabilidade que pode ser encontrada em aplicações web, e que permite inserir códigos no lado do cliente (altera a página no computador do usuário).

Este ataque pode ser subdividido em três tipos de categorias: Refletido, Armazenado, baseado em DOM.

  • Para que serve

XSS é uma vulnerabilidade que pode causar desde um simples alerta na tela até um sequestro de sessão ou redirecionamento para outros sites de tipos maliciosos.

O XSS é um ataque no qual seu objetivo final é injetar ou executar código (JavaScript) no navegador da Web de um usuário.

O XSS deve ser considerado um ataque contra o usuário de um site vulnerável.

Agora, vamos ver o que acontece se somos hackers e enviamos essa carga para a mesma página no mesmo nome de parâmetro:

Observação: o URL acima deve ser codificado por URL.

http://victim.site/welcome.php?name=</h4><script>alert('XSS'); </ script>

A maioria dos navegadores fará isso por você . A versão codificada de URL é a seguinte:

% 3c% 2fh4% 3e% 3cscript% 3ealert (% e2% 80% 98Este + é + um + XSS% e2% 80% 99)% 3b% 3c% 2fscript% 3e)

O servidor retornará este código:

<script>alerta('Isso é um XSS"');</script>

Os hackers podem explorar as vulnerabilidades XSS de muitas maneiras diferentes. Por isso, neste curso usaremos a seguinte classificação para ataques XSS:

• XSS refletido

• XSS armazenado

• DOM XSS

Reflected XSS é provavelmente a forma mais comum e bem compreendida de vulnerabilidades XSS. Ocorre quando dados de usuários não confiáveis ​​são enviados para um aplicativo da Web e são imediatamente retornados como o conteúdo não confiável. Então, como de costume, o navegador recebe o código da resposta do servidor web e processa-o.

XSS persistentes (ou armazenadas) são semelhantes ao XSS refletido, no entanto, em vez de a entrada maliciosa ser diretamente refletida na resposta, ela é armazenada na web aplicação. Uma vez que isso ocorra, ele será ecoado em algum outro local dentro do aplicativo da Web e poderá estar disponível para todos os visitantes.

XSS DOM Based Este tipo é dependente das vulnerabilidades em algum componente da página, onde o script irá alterar o HTML da página usando manipulação DOM (Document Object Model).

As consequências destes ataques podem implicar em roubo de informações confidenciais que estejam em um cookie, o invasor pode realizar ataques de pishing, dentre diversas outras ações que podem causa danos na segurança do usuário.

--

--