Rompiendo Captchas

July 5th, 2007 Posted in Informatica

images2.jpgEstos últimos dos días he intensificado algunos trabajos que me han obligado a tener que saltarme algunos captchas. Desgraciadamente, hay mucho becario programando paginas Webs y he de decir, que de las ultimas 4 paginas que tenían captcha he podido saltarme 3 de ellas, que lógicamente no diré cuales son para que no se me acabe el chollo.

Y a continuación os voy a poner los errores básicos, que espero no cometáis si sois programadores

  • Imagen sencilla
    Usando una llamada a la Shell y un script como el gocr, las imágenes estándar son fácilmente reconocibles, en mi caso el 80% de las veces sacaba el texto correctamente.
  • Código de imagen
    Muchas veces cuando aparece un captcha en el formulario hay 2 campos, uno de tipo hidden que es el HASH de la imagen (o código interno) y otro donde nosotros ponemos el texto del captcha. Cuando esto es así, muchas veces, aunque nos salga otro captcha podemos enviar el HASH y el texto anterior, y creerme, funciona. Aunque te muestre otra imagen, solo debes editar el HASH por uno valido.
  • Texto en código fuente
    Bueno, esto no requiere mucha explicación y lo he visto mas de una vez. Solo diré: ¡hay que ser borrego!.

Si tu vas a hacer una aplicación donde necesites usar un CAPTCHA, te recomiendo que no lo hagas, el CAPTCHA es una de las cosas mas molestas del mundo, programa un filtro de X peticiones por IP y si quieres a las 30 o 40 le muestras un CAPTCHA, pero no lo hagas todo el rato que toca mucho las narices.

No obstante, si lo vas a poner, recuerda guardar el HASH del CAPTCHA que estas mostrando en una sesión, algo que el usuario no puede manipular, así no te dan gato por liebre.
También intenta poner un formato de imagen que no sea muy fácil de reconocer con un OCR, pero tampoco lo ofusques mucho, que hay veces que es hasta difícil leerlo, y no olvides que si el usuario introduce el CAPTCHA incorrectamente mostrarle otro distinto, que a veces por mas que lo intentas algunos son completos jeroglíficos.

Post a Comment