jueves, 15 de diciembre de 2011

Bypassing Captchas, más facil de lo que parece

El otro día me preguntaron si recomendaba algún proyecto decente para evitar las validaciones mediante captcha y leyendo al respecto me pareció curioso la cantidad de opciones a las que se puede acudir cuando muchas veces las formas de saltarse esos sistemas no tienen nada que ver con la complejidad de las imágenes que generan (que muchas veces ni nosotros somos capaces de acertarlas a la primera) sino de la implementación que se hace de los mismos.

pudimos comprobar como la forma de saltarse el sistema de captcha no consistía en nada más que acceder al código de la página y buscar un campo oculto con nombre 'captchacode_01' y obtener de ahí el valor de la imagen mostrada.

Otro caso curioso lo protagonizó la SGAE y su formulario de contacto (aunque la vulnerabilidad es del plugin CForms para Wordpress) que permitía asignar a nuestra sesión un captcha cuyas propiedades de generación podíamos modificar, obteniendo finalmente un captcha que siempre valía '0'.

Como hemos visto, hay formas de saltarse los sistemas de captcha sin tener que utilizar técnicas complejas de reconocimiento de texto en imágenes, simplemente basta con manipular el sistema como tal. Esos ejemplos ya habían sido comentados por aquí pero ¿hay más? En este caso voy a comentar uno que afecta a más sistemas de los que esperaba (inluyendo algunos controles de Google, Twitter, etc).

¿En qué consiste? Pues simplemente en obtener el token y el valor correcto del captcha y replicarlo en cada una de las peticiones que hagamos. De esta forma siempre estaremos enviando la respuesta correcta. La verdad es que parece mentira que esta técnica funcione con lo fácil que sería eliminar el par token-valor una vez ha sido validado (valiéndonos solo para una petición).

Más interesante, veamoslo en un ejemplo... el sistema de control de búsquedas automatizadas de Google.

Cuando realizamos muchas búsquedas en Google al final acaba pidiéndonos que rellenemos un captcha. El sistema en cuestión es:

http://www.google.es/sorry/Captcha?continue=URL

Si nos fijamos vemos que el sistema asigna a nuestra sesión una imagen a la que podemos acceder mediante su identificador:

http://www.google.es/sorry/image?id=ID

Quedando la petición de validación del captcha:

http://www.google.es/sorry/Captcha?continue=URL&id=ID&captcha=VALOR&submit=Enviar

Por lo tanto, bastará con repetir esta petición cada vez que Google intente validar nuestra búsqueda automatizada (colocando la url de la búsqueda en el parámetro 'continue') para saltarnos el control (es necesario enviar la cookie GDSESS).

Como véis, con una técnica de lo más simple es posible saltarse la restricción de búsquedas de Google (aunque hay otros servicios sin reCaptcha que tampoco se ven afectados como el de iniciar sesión), el formulario de creación de una cuenta en Twitter Mobile, y otras muchas páginas.

No hay comentarios:

Publicar un comentario