Linux slogan
Visite também: BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Openbox com novo visual + GIMP.
Por chronos
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Pentesting on PHP apps: XSS
Linux user
andrezc
12/09/2012
Neste artigo veremos um simples Pentest em uma aplicação PHP, onde injetamos códigos em uma aplicação, conseguindo interpretar estes mesmos códigos, podendo realizar uma possível prática de phishing.
[ Hits: 5401 ]
Conceito: 10.0   1 voto(s)1 voto(s)1 voto(s)1 voto(s)1 voto(s) + quero dar nota ao artigo

Introdução

O artigo fora escrito, inicialmente, para o fork do Viva o Linux, que era o Segurança Linux. Por isso, talvez você encontre referências às informações do Segurança Linux, como endereço, nome etc; nada que comprometa a integridade do artigo.

  • Autor: André S. Rosa Junior
  • Tema: Pentest
  • Plataforma: Web

* Nota 1: Todas as informações apresentadas neste artigo foram obtidas na Internet, sendo assim, não ofereço nenhum tipo de garantia ou suporte. Não nos responsabilizamos por qualquer dano ocorrido, tanto na máquina (computador) quanto no software. Siga por sua conta e risco.

* Nota 2: Para realizar um Pentest, ou uma intrusão, você deve ter autorização. Caso contrário, tal ato pode ser considerado crime, sujeito a punições cabíveis. Todos os testes feitos neste artigo foram autorizados.

Neste artigo iremos realizar um simples pentest, onde tentaremos injetar códigos em um formulário, tentando assim, interpretar estes mesmos códigos.

Caso consigamos interpretar estes mesmos códigos, podemos "criar" nossa própria aplicação em cima disso, com o intuito de realizar phishing, ou melhor dizendo, roubar informações.

Aqui utilizaremos uma técnica chamada XSS, que junto à outras técnicas, como o Clickjacking, podemos fazer um estrago. E posso afirmar que, em 80% dos testes que eu faço neste tipo de aplicação, 90% está vulnerável.

O que é XSS

O XSS (Cross-site scripting) é uma vulnerabilidade muito comum em aplicações WEB (PHP, ASP...), onde podemos injetar códigos HTML e JavaScript nesta mesma aplicação, podendo assim, "modificar" esta página da forma que bem desejarmos.

- Mas isso é Defacement?

R: Não!

Ou melhor, depende do ponto de vista de quem está a explorar. Eu, por exemplo, não vejo o porque de usar isto apenas para "mexer" nos sites alheios para "zoar".

Pois isso é uma vulnerabilidade que permite muito mais, o que falaremos mais a frente, que são as possibilidades. :)

O ataque XSS

Vou tentar explicar a vocês como funciona esta "belezinha". Vamos supor que você tenha um pequeno formulário, escrito em HTML, um botão, que tem como ação enviar o que foi digitado para uma segunda página, a página que conterá os scripts PHP.

A única coisa que este script PHP fará, é criar uma variável pegando o método de envio do formulário (POST/GET) e criando uma variável em cima disso. Logo após, o mesmo irá retornar:
Olá $variável


Esta "variável", depois do "Olá", seria a variável contendo o que haviam digitado no campo de texto.

Agora, vamos supor que ele coloque uma tag HTML no campo de texto, o que será que nos seria retornado na página PHP ? ;*

Vamos ver isso na próxima página!

Let's hack it!

Próxima página >>




Páginas do artigo

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por andrezc em 12/09/2012 - 13:15h:

Na primeira imagem, talvez pareça que cometi um erro de inglês: "You are secure?", mas esse "?" e a inversão da frase quis por em o "questionamento de uma certeza"; Estou seguro! (?).

Espero que gostem.


[2] Comentário enviado por roberto_espreto em 12/09/2012 - 20:45h:

No caso do seu código ai acima, só de ver dá pra saber que pra gerar o "alerta" não necessariamente preciso utilizar as tags <script>, </script>, existem outras alternativas, por exemplo, com onload, onerror, onmouseover, etc. Cara, as que eu me lembro, tem umas 20 maneiras, mas existem bem mais, segue as que citei:

<body onload=alert('Espreto')>
<img src="http://url.para.arquivo/que.nao.existe" onerror=alert(document.cookie);>
<body onmouseover=alert('Espreto! Oops ')>click me!</b>

Outra coisa interessante é que existem classificações de Cross-Site Scripting (XSS): reflected, stored, dom-based e vai.

Não recomendo seguir este link que você postou como "possível solução" e sim o modelo que já existe a anos, que é o "XSS (Cross Site Scripting) Prevention Cheat Sheet [1]", mantido pela OWASP [2] (Open Web Application Security Project).

[1] https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet">https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
[2] https://www.owasp.org/


Abs,


[3] Comentário enviado por andrezc em 13/09/2012 - 09:06h:

Valeu pelos toques, Roberto!



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.