Introdução
[+] XSS por Wikipédia
Cross-site scripting (XSS) é um tipo de vulnerabilidade do sistema de segurança de um computador, encontrado normalmente em aplicações web que ativam ataques maliciosos ao injetarem client-side script dentro das páginas web vistas por outros usuários. Um script de exploração de vulnerabilidade cross-site pode ser usado pelos atacantes para escapar aos controles de acesso que usam a mesma política de origem.
[+] XSS é perigoso?
Sim, XSS é realmente perigoso, é de alta gravidade, porque ele poderia mudar o site e roubar as credenciais de administrador, nestes casos, o invasor pode controlar e comprometer o aplicativo.
Eu nunca tinha dado tanta importância para o XSS até ver uma palestra na CPBR5 que falava das 10 ameaças da OWASP mais usadas, vi coisas realmente incríveis com o XSS até mesmo roubo de sessões.
[+] O Que o atacante quer alcançar?
- Alterar configurações
- Roubar cookies
- Fazer uma publicação falsa
- Realizar roubos de Tokens para ataque CSRF
[+] Tipos de Ataques XSS
Persistent (stored) XSS
O ataque é armazenado no site.
O ataque é armazenado no site.
Non persistent (reflect) XSS
Usuário tem que ir através de um link especial para ser explorado.
Usuário tem que ir através de um link especial para ser explorado.
DOM-based XSS
problema existe dentro do script do lado do cliente
problema existe dentro do script do lado do cliente
Vamos discutir cada tipo destes ataques em detalhes.
[+] Persistent (stored) XSS
O persistent (or stored) vulnerability XSS é uma variante mais devastadora da falha de cross-site scripting, ela ocorre quando os dados fornecidos pelo atacante é salvo pelo servidor e em seguida permanentemente exibida nas páginas retornadas para outros usuários na exibição regular da navegação. Um exemplo clássico disso é com quadros de mensagens de forum onde os usuários tem permissões para postar mensagens formatadas em HTML para que outros usuários possam ler.
Persistent XSS simplesmente ocorre quando o desenvolvedor armazena os dados de entrada do usuário no banco de dados ou simplesmente o escreve em um arquivo sem uma filtragem adequada, em seguida, envia-os novamente para os usuários.
[+] Exemplo de persistent XSS em PHP
'.mysql_error().'
'); } ?>
Os dois parâmetros em que o código ”message” e ”name” não são higienizados adequadamente e assim nós armazenamos estes parâmetros para a tabela no guestbook(livro de visitas), portanto, quando a exibição desses parâmetros voltar ao navegador do cliente, ele irá executar o código JavaScript malicioso.
< –
Dentro da caixa de texto vulnerável foi inserido um código em java script malicioso.
– >
Assim que o código é executado olha o resultado:
[+] Non Persistent (Reflected) XSS
A definição non persistent (ou reflected) XSS é de longe o tipo mais comum. Estes buracos aparecem quando os dados fornecidos por um cliente web, mais comumente em parâmetros de consulta HTTP ou envios de formulários HTML, é usado imediatamente por scripts do servidor para gerar uma página de resultados para o usuário, sem a correta higienização do pedido.
[+] Exemplo de non persistent XSS em PHP
'; echo 'Hello' . $_GET['name']; echo '
'; } ?>
Como você pode ver, o “name” é um parâmetro não higienizado e retornara para o usuário, assim quando o usuário injetar um código malicioso em JS ele será executado.
Vamos injetar o código e vejamos o que vai acontecer.
Assim que inserimos o código no campo vulnerável ele retorna o erro e notem que na barra de navegação do browser que ele vai mostrar o código digitado também.
.
.
.
.
.
O restante do artigo fiquei com um pouco de preguiça de traduzir, mas é um bom artigo e vale a pena se visualizado.
Segue o link do PDF http://www.exploit-db.com/wp-content/themes/exploit/docs/18895.pdf
Nenhum comentário:
Postar um comentário
............