XSS - Cross Site Scripting

Ataques XSS estão se tornando um grande problema e piorarão ainda mais se as pessoas não tomarem conhecimento desse tipo de ataque e suas vulnerabilidades.

[ Hits: 82.386 ]

Por: Luiz Vieira em 02/04/2009 | Blog: http://hackproofing.blogspot.com/


Básico do XSS



O ataque mais comum utilizado contra vulnerabilidades XSS é a execução de códigos javascript para permitir o sequestro de sessão (roubo de cookie). Utilizando javascript também seria possível fazer coisas com contas de usuários, tal como alterar detalhes de seu perfil.

O maior risco que o XSS pode trazer é a execução de códigos no computador do usuário (client side). Entretanto, isso pode ocorrer apenas se há uma vulnerabilidade no browser que o usuário utiliza, permitindo que um ataque de tal tipo tome lugar, e para prevenir isso, é essencial que mantenha seu navegador atualizado com todos os patches. Ainda assim, recomendo que utilize o Firefox, que é reconhecidamente mais seguro que o Internet Explorer.

Vamos começar a aprender agora alguma coisa dos métodos XSS utilizados atualmente e o tipo de XSS Injection mais utilizado é:

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

Esse código fará com que uma caixa de mensagem de alerta, com "XSS" escrito nela, apareça na tela.

Então, retornando ao tópico anterior, vamos lembrar que uma das páginas contidas em websites que mais facilmente podemos encontrar é o search.php?q=. Depois de encontrado um site com esse tipo de página, vamos simplesmente tentar o seguinte, digite após o sinal de = o código:

<script>alert("XSS")</script> .

A URL na barra de endereço do browser ficará assim:

http://site.com/search.php?q=<script>alert("XSS")</script>

Há grandes chances desse método funcionar, mas não se preocupe se isso não ocorrer. Apenas tente em outro site...

Um outros códigos XSS que é fácil de implementar é

<br><br><b><u>XSS</u></b>

O exemplo ficaria assim:

http://site.com/search.php?q=<br><br><b><u>XSS</u></b>

Se ver a palavra "XSS" em negrito na página, então saberá que o site é vulnerável. A partir daí poderá seguir adiante utilizando outros métodos para explorar tais vulnerabilidades.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Encontrando vulnerabilidade XSS
   3. Básico do XSS
   4. Exemplos de exploits e vulnerabilidades XSS
   5. Como posso proteger-me contra ataques XSS
Outros artigos deste autor

SELinux - Security Enhanced Linux

Bypass de firewall com tunelamento por DNS

Race Condition

Certificações em Segurança: para qual estudar?

Explorando celulares Android via Web com airbase-ng

Leitura recomendada

Google Maps API - Criando e interagindo com seus próprios mapas

Expressões Regulares - Entenda o que são Lookahead e Lookbehind

Diferenças de sites Web Standards

Como minimizar CSS e Javascript via linha de comando

MathML - Mathematical Markup Language

  
Comentários
[1] Comentário enviado por demoncyber em 02/04/2009 - 11:26h

Excelente artigo!

Muito interessante a abordagem aprofundada do assunto não aquilo que habitualmente se encontra na net de um a três paragrafos falando o que é e nem explicando como funcinoa..

Parabéns


[2] Comentário enviado por M.Bittencourt em 02/04/2009 - 11:46h

Parabéns pelo artigo.

[3] Comentário enviado por dastyler em 02/04/2009 - 14:30h

artigo muito bom.
A ultima vez que li a respeito de documentação sobre XSS foi um artigo na Linux Magazine.
Parabens!

[]´s

[4] Comentário enviado por Douglas_Martins em 02/04/2009 - 17:56h

Muito bom mesmo.

Parabéns pelo artigo. Muito bem explicado e de forma direta no assunto.

[]'s

[5] Comentário enviado por gersonraymond em 03/04/2009 - 07:15h

Parabéns !!!

Artigo muito bem explicado, show de bola !!!

Um abraço.

[6] Comentário enviado por cassimirinho em 04/04/2009 - 13:24h

Bom, muito bom.

[7] Comentário enviado por psychokill3r em 06/04/2009 - 23:52h

concordo que é muito bom esse artigo ,até o coloquei nos favoritos (me deve 100 pontos) to brincando.

mais não vi soluções para administradores de sites , ou seja não usar php nuke ou Invision Power Board esta fora de questão.

se alguem quiser brincar um pouco com xss baixe a extensão para firefox "xss me" que faz vários testes no site q você quiser .

e para não se dar mal em algum site que já foi injetado códigos você deve ter a extensão "script block".
mandar o firefox limpar cokkies e histórico ao sair sem perguntar também é uma boa ideia.

valeuw
obrigado ao autor e espero mais artigos do tipo.

xss-me
sql inject-me
access-me

exemplo de ataque dessa vez ao twitter
http://pcmag.uol.com.br/conteudo.php?id=1355

[8] Comentário enviado por wagner.elias em 22/04/2009 - 11:53h

Parabéns por compartilhar conteúdo, mas permita-me esclarecer alguns pontos onde você se equivocou.

1 - No início você trata XSS (Cross Site Scripting) como CSRF (Cross Site Request Forgery). Uma coisa é um XSS que irá executar código javascript no cliente (XSS é um ataque client-side), outra coisa é o CSRF que tem o XSS como vetor e consiste em executar ações baseado nas credenciais do usuário que está sendo explorado;

2 - Outro equívoco grande foi referente aos tipos de XSS, existem 3 tipos de XSS:

a) Refletido - Quando o XSS é executado, explorado quando o usuário abre uma URL, página que contém um script injetado;
b) Armazenado - Quando o atacante consegue inserir um XSS na aplicação e ele irá ser armazenado na base dados, quando o usuário chamar a página;
c) DOM Based - É o XSS que explora objetos DOM (Document Object Model).

Quanto o tratamento, basicamente o XSS explora inputs que não são adequadamente validados, portanto para mitigar é necessário tratar os dados que você recebe em cada input. Mais detalhes podem ser vistos aqui: http://www.owasp.org/index.php/Cross_site_scripting

Quem quiser trocar informação sobre o tema segurança em aplicações web, estou a disposição. Uma excelente fonte de informação é o site da OWASP (Open Web Application Security Project - http://www.owasp.org), quem quiser conhecer o capítulo brasileiro, só entrar em contato e/ou assinar a lista de discussão: http://www.owasp.org/index.php/Brazilian

Abs.

[9] Comentário enviado por luizvieira em 22/04/2009 - 12:44h

Olá Wagner, preferi não abordar o CSRF, apenas coloquei algumas funcionalidades que o XSS possui semelhantes ao CSRF (apesar do CSRF ser mais amplo e permitir uma gama maior de execuções maliciosas além de outras possibilidades ).

Quanto as classificações, realmente equivoquei-me ao explicá-las. Expliquei o primeiro tipo, "refletido", porém sem utilizar a terminologia que vc utiliza, assim como o segundo tipo. Quanto ao terceiro tipo, é justo aí que o equívoco encontra-se, obrigado por esclarecer esse aspecto :-)

Utilizo a metodologia OWASP quando faço análise de vulnrabildiades em aplicações WEB, pois considero-a de todas as metodologias, a mais eficiente e bem organizada. Para um pen testing, na parte WEB é justamente essa que utilizo. Obrigado pelo convite à todos, para participar da lista de discussão!

[ ]'s

[10] Comentário enviado por fabio1049 em 17/06/2009 - 15:39h

Muito bom artigo, parabéns.
Eu ainda fiquei na dúvida sobre procedimentos para evitar o ataque no servidor remoto. Sou administrador de um site que vem sofrendo esse tipo de ataque. De uma hora para outra o arquivo index é alterado, é colocado um javascript malicioso ou um iframe com um link desconhecido. Eu não consigo identificar onde está a vulnerabilidade, já que essa pagina é um html com apenas um swf no conteúdo.

[11] Comentário enviado por luizvieira em 22/06/2009 - 16:01h

Olá Fábio,
O ideal é levantar algumas questões acerca do site que administra e o servidor onde stá hospedado:
- O site é html puro ou baseado em alguma linguagem dinâmica? Se é a segunda opção, utiliza algum CMS? Se sim, há vulnerabilidades que ainda não corrigiu com atualizações?
- Se baseado em linguagem dinâmica e BD no servidor, há um tratamento adequado contra SQL injection? Muitas vezes javascripts maliciosos entram nos conteúdos via SQL Injection...
- Há algum script ou arquivo estranho no seu servidor ftp? Muitas vezes alguém implanta um script que dá acesso ao servidor FTP (muita gente ainda salva o arquivo com o nome de C99.algumacoisa, mas isso não é regra). Faça uma limpeza no seu FTp pra ver se tem algo estranho, que vc não tenha criado, ou simplesmente não vá mais utilizar e remova.
- Qual o nível de segurança e a preocupação com o assunto do servidor onde seu site está hospedado? Alguns não ligam muito pra isso, mas depois do ataque isso faz uma difereeeeeennnnnnça....rs.

Essas já são algumas questões que precisa responder pra diminuir os riscos de ataques. Há outras, obviamente, mas essas já são o início.
[ ]'s

[12] Comentário enviado por ricardolongatto em 10/01/2012 - 23:53h

execelente
abraço luiz


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts