Vulnerabilidades Web (CSRf) Cross Site Request Forgery
Hoje vou falar sobre um tipo de vulnerabilidade de aplicações web chamado Cross Site Request Forgery (CSRF). Mesmo que seu nome guarde certa similitude com outro tipo de vulnerabilidades como Cross Site Scripting (XSS), hí importantes diferenças entre elas. A diferença dos ataques XSS, que se baseiam em explodir a confiança que tem um usuírio em um determinado sàtio web ou aplicação, os ataques CSRF, também denominados como Cross Site Reference Forgery ou XSRF, se baseiam em explodir a confiança que os sàtios web têm com seus usuírios.
Vejamos como funciona com um exemplo:
Imaginemos que estamos conectados a um site que requer autenticação, e que por exemplo estamos mantendo uma conversa por chat com outra pessoa. Essa pessoa poderia enviar-nos um link de uma pígina que contivesse uma imagem oculta que apontasse a uma url do site no qual estamos autenticados. Quando entríssemos nessa pígina, a imagem oculta faria com que solicitíssemos ao site uma determinada ação sem estarmos conscientes disso, por exemplo mudando nossos dados de registo, publicando informação em um fórum em nosso nome, ou qualquer outra coisa que se nos ocorra.
O problema portanto é que o site no qual estamos autenticados, é incapaz de saber se a petição que lhe chega a realizamos nós de forma voluntíria ou se foi injectada por algum ataque CSRF. Normalmente muitos sites são vulneríveis a este tipo de ataques, mesmo que os mecanismos de protecção deles são relativamente simples, sempre e quando os emolduremos também dentro de outro tipo de protecção, como os ataques XSS.
Mecanismos de ataque
Na continuação apresento alguns dos mecanismos mais frequentes mediante os que realizam este tipo de ataques, como os métodos baseados na utilização de imagens scripts de javascript, iframes, ou XMLHttpRequest.
Os mais simples se baseiam na utilização dos atributos src dos rótulos img, script e iframe. Este tipo de ataques são suficientes para aqueles sites que aceitam os parâmetros da ação mediante GET. Por exemplo, poderia ser suficiente indicar uma imagem de tamanho nulo com o atributo src http://www.site.com/page?parametros.
Outra forma de ataque é a utilização de código JavaScript que nos permite realizar ataques a píginas com parâmetros GET como as anteriores, tal como se amostra no seguinte exemplo, mas que também permite de forma muito simples atacar a píginas que utilizem parâmetros via POST.
Bom tive de criar esta imagem visto que o fórum não estava aceitando os scripts.

Bom agora vamos hí defesa como era de se esperar em meus tópicos, pois meus estudos são baseados na segurança.
Leia Mais →