Un candidato a peor “captcha” de la historia

Antes de empezar, me gustaría agradecer a mi compañero de la B1.30, David “Chope” Ventura ,que me comentara lo que a continuación os voy a describir.

Si algo me gusta de este país es lo chapuceros que podemos llegar a ser cuando nos lo proponemos y la famosa técnica de las Matrioshkas para que los proyectos sean la subcontratas de la subcontratas de la subcontratas de la subcontratas de la subcontratas de la … ad infinitum.

La cuestión es que con tanta gente en la cadena alimenticia, al final los requisitos se pierden en la traducción y nos encontramos páginas como http://www.citapreviadnie.es/.

Cita Previa DNIe es un servicio que el gobierno ha puesto para que los ciudadanos puedan solicitar el DNI electrónico.

PopUpCitapreviadnie

Nada más entrar, la página intenta abrirte un pop-up para darte la bienvenida. Sinceramente, me parece un error imperdonable en estos años en los que vivimos. En primer lugar, cualquier navegador actual bloquea los pop-up y la gente no sabe cómo abrirlos (por mucho que Internet Explorer, FireFox u otros) muestren una barra amarilla en la parte superior de la ventana).

Pero quizás, lo que más nos llegue al corazón, es el detalle del captcha que utilizan.

CaptchaDeRisa

Si te permites el lujo de abrir la página, verás que no es un captcha, sino una tabla con letras en texto plano. Simplemente utiliza el FireBug o cualquier otra cosa que te permita explorar el DOM de la página y te encontrarás algo como esto:

   1: <table width="300" height="60" border="0" background="https://www.citapreviadnie.es/captcha.gif">
   2:  <tbody>
   3:   <tr>
   4:    <td align="center" style="font-size: 30pt; font-family: Courier; color: blue;">T</td>
   5:    <td align="center" style="font-size: 30pt; font-family: Arial; color: blue;">B</td>
   6:    <td align="center" style="font-size: 30pt; font-family: Arial Black; color: blue;">I</td>
   7:    <td align="center" style="font-size: 30pt; font-family: Arial Black; color: blue;">J</td>
   8:   </tr>
   9:  </tbody>
  10: </table>

Pero si no fuese suficiente este captcha además no sirve absolutamente para nada, sino para complicar la vida al usuario. Ya que para más INRI se genera en cliente con JavaScript (luego podríamos enviar lo que quisieramos al servidor, este pseudo-captcha no nos detendría).

   1: var clave="";
   2: var DivImagen="";
   3: var DivTexto="";
   4: var NumeroLetras = 4;
   5: var letra="";
   6:
   7: function generaCapt()
   8: {
   9:     clave = GeneraClave(clave);
  10:     DivTexto = texto(DivTexto);
  11:     DivImagen = Imagen(DivImagen);
  12:     document.getElementById("imagendni2").innerHTML = DivImagen + DivTexto;
  13: }
  14:
  15: function GeneraClave(clave)
  16: {
  17:     var cont1;
  18:     var cadenaTexto = "ABCDEFJHIJKLMNPQRSTUVWXYZ123456789";
  19:     var numero;
  20:     var letra;
  21:     for (cont1=1; cont1<NumeroLetras+1; cont1 ++)
  22:     {
  23:         numero = Math.random() * cadenaTexto.length;
  24:         numero = Math.floor(numero) ;
  25:         if (numero == 0)
  26:         {
  27:             numero = 1;
  28:         }
  29:
  30:         if (numero > cadenaTexto.length)
  31:         {
  32:             numero = cadenaTexto.length;
  33:         }
  34:
  35:         clave = clave + cadenaTexto.substring(numero,numero+1);
  36:     }
  37:
  38:     return clave;
  39: }
  40:
  41: function texto(DivTexto)
  42: {
  43:     var TamFuente;
  44:     var Fuente = new Array("Courier", "Arial  Black", "Arial");
  45:     var Fase = new Array(10, 20, 30, 40);
  46:     var cont1, cont2, cont3;
  47:     for (cont1=0; cont1<NumeroLetras; cont1 ++)
  48:     {
  49:         TamFuente = Math.random() * 36;
  50:         TamFuente = Math.floor(TamFuente);
  51:         if (TamFuente < 30)
  52:         {
  53:             TamFuente = 30;
  54:         }
  55:
  56:         if (TamFuente > 46)
  57:         {
  58:             TamFuente = 46;
  59:         }
  60:
  61:         cont2 = Math.random() * Fuente.length;
  62:         cont2 = Math.floor(cont2);
  63:
  64:         if (cont2 > Fuente.length - 1 )
  65:         {
  66:             cont2 = Fuente.length - 1;
  67:         }
  68:
  69:         cont3 = Math.random() * 4;
  70:         cont3 = Math.floor(cont3);
  71:         if (cont3 > 4)
  72:         {
  73:             cont3 = 4;
  74:         }
  75:
  76:         DivTexto = DivTexto + '<td align="center" style="width:70; height: 50; font-size: ' +  TamFuente + 'pt; font-family: ' + Fuente[cont2] +    '; color: blue; ' +        'Filter:Wave(Add=0, Freq=0, LightStrength=10, Phase=' + Fase[cont3] + ', Strength=5)">' +        clave.substring(cont1,cont1+1) + '</td>';
  77:     }
  78:
  79:     DivTexto = '<div style="position:relative;">' + '<table background="https://www.citapreviadnie.es/captcha.gif" border="0" width="300" height="60"> <tr>' + DivTexto + '</tr></table>' +       '</div>';
  80:     return DivTexto;
  81: }
  82:
  83: function Imagen(DivImagen)
  84: {
  85:     DivImagen = '<div style="position:relative; ; left: 200px; top: 0px;"></div>';
  86:     return DivImagen;
  87: }
  88:
  89: function VerificaCaptcha()
  90: {
  91:     document.documento.D6.value = document.documento.D6.value.toUpperCase( );
  92:     if (clave != document.documento.D6.value)
  93:     {
  94:         document.documento.D6.value = " ";
  95:     }
  96: }

En fin, ya veis a dónde van nuestros impuestos y cómo funciona la administración.

¡VIVA ESPAÑA!

42 Responses to “Un candidato a peor “captcha” de la historia”


  1. 2 Christian López Espínola 14 May 2008 at 12:06

    Haz un POC de como explotarlo. Hasta entonces, aun a pesar de que ya te he dicho que es una chapuza, no es la peor chapuza de la historia.

  2. 3 Jose 14 May 2008 at 14:09

    Sí que sirve para algo: para adornar…

    Saludos.

  3. 4 cau 14 May 2008 at 14:10

    Bueno no es ninguna novedad que en la administracion publicar los “proyectos” (por llamarlos de alguna forma) se suelen adjudicar en funcion de los beneficios que podra sacar al persona que lo adjudica. Un presupuesto de 2.000 euros para un “proyecto” de capcha que acabara gastando….5 horas? 30-50 euros?

  4. 5 Brito 14 May 2008 at 14:28

    Bueno, es un captcha feliz ^^ Ha sido el producto de elaboradas elucubraciones ingenieriles. Seguramente, muchos conceptos de usabilidad han estado involucrados en su creación. La evolución natural de este captcha es “el captcha invisible”. Se espera con ansiedad.

  5. 6 haplito 14 May 2008 at 14:37

    A lo mejor la complejidad reside en la sencillez…

  6. 7 clio5mil 14 May 2008 at 14:42

    No puedo dejar de explamar: ¡Dios Santo! ¡Que chapuza!

    – Y eso que soy ateo –

    Clio5mil

  7. 8 kikerino 14 May 2008 at 14:55

    Por cierto, probad a pulsar el boton derecho sobre la página…

    XD

  8. 9 Alfredo 14 May 2008 at 14:55

    Madre de dios, como todo lo de la AEAT esté hecho así…

  9. 10 proyecto 14 May 2008 at 15:05

    alguien deberia explotar ese bug… y que lo tubieran que arreglar si o si… y como lo pagamos todos… alguien deberia denunciar al chapuzas que hizo eso

  10. 11 Chechu 14 May 2008 at 15:12

    Pues no os perdáis “salir de la página”. No hay ninguna opción para salir de la página y no continuar con el proceso. Si intentas cerrar el navegador por la X de la esquina, te aparece un mensaje que indica que “NO es recomendable salir de esta forma de la página”. ¿Y cómo se sale? ¿apagando el ordenador?

  11. 12 r0s 14 May 2008 at 16:06

    Que fueeeeeeeeeeeeeeeeeeerte!!! (es lo unico ke nos sale de la boca a un par de compañeros que acabamos de leer tu entrada)

    Hay que ser cutre madre de dios… xD

  12. 13 Puisía 14 May 2008 at 16:36

    Pero… ¿para qué puñetas quieren un captcha? ¿No es suficiente con tener que dar los datos del nº del DNI, equipo de expedición, fecha de validez, nº de soporte…?

  13. 14 WOOOOW 14 May 2008 at 16:42

    Soy al único que le duele la vista al leer el captcha.

  14. 15 Guti 14 May 2008 at 17:21

    Brito:

    Eres listísimo, pero puede (sólo puede) que precisamente no hayan intervenido ingenieros (o ingenieros pero no en informática). Puede, digo.

  15. 16 kodec 14 May 2008 at 18:04

    Ains! a mi me ha dado lástima.
    Seguro que lo han hecho con toda la buena intención. Les ha sonado la flauta en plan ¡Hagamos esto que se ve en todas partes para que parezca más seguro! pero probablemente no sabrán ni que se denomina “captcha”.
    jo, pobres.

  16. 17 Pedro Gimeno 14 May 2008 at 18:30

    OMFSM… ¿Y estos son los encargados de la seguridad del DNIe?

    Menos mal que entiendo un poquito de X.509 y esas cosas, porque la imagen que da esto es como para temblar…

    ¿No será una venganza?

  17. 18 El Abuelo 14 May 2008 at 18:33

    ¿Algún sorprendido por el funcionamiento de la susodicha página Web?

  18. 19 Mario 14 May 2008 at 18:33

    Igualmente aunque no fuera javascript me apuesto lo que sea a que con cualquier ocr es posible leerlo. Solamente hay que filtrar en primer lugar los colores de la imagen y dejar solo el tono azul oscuro, posteriormente lo pasamos a blanco y negro y woalaaaaaaaaaa! seguro que lo lee :D

    Saludos,

  19. 20 evita107 14 May 2008 at 18:40

    Con C de cutre, y curioso. Smile, you´re in spain…

  20. 21 Emilio 14 May 2008 at 18:44

    Esos colores no causarán epilepsia, no?

  21. 22 pippolippi 14 May 2008 at 19:05

    Alfredo, la AEAT es peor, y con diferencia.

  22. 23 Brito 14 May 2008 at 19:31

    @Guti: Sin duda que tú también eres listísimo. Ingenieros o no, creo que duermen tranquilos, satisfechos con la popularidad adquirida por su producto ^^

    @Chechu: Es un concepto moderno de los estudiosos de la usabilidad. Para salir, presiona Abajo, Izquierda, A, B, Select y luego Start.

  23. 24 MAD-Max 14 May 2008 at 20:45

    Joer, tanto elogiar el código abierto, tanto adorar código abierto, y cuando la administración pone el código abierto en su páginas, van y se quejan

    Si es que no sabéis lo que queréis ;-) XD XD XD

  24. 25 jose miguel 14 May 2008 at 22:40

    Script con Python / Xul o javascript que hace la búsqueda en el árbol dom (XML básicamente) tal y como FireBug hace y modificar el campo de texto para actualizar el atributo con el valor de las letras.

    Sencillo y rápido, no hace falta PoC.

  25. 26 Lightkun 14 May 2008 at 23:33

    Cu ññaaaaaaa aaaa!

    El de la idea jugaba con el Detectinova de pibe xDD

  26. 27 Morghost 15 May 2008 at 09:02

    acojonante pensar el pastón que habra cobrado alguna charcutera por esa chapuza

  27. 28 Brito 15 May 2008 at 11:23

    @MAD-Max: XD XD XD

  28. 29 Andrés 15 May 2008 at 15:18

    Mucho criticar a la administración y meterse con los funcionarios pero, en este caso, el proyecto lo han hecho empresas privadas: Indra, El Corte Inglés y Software AG. Así que, para todos aquellos que se meten con los funcionarios, los inútiles esta vez no son funcionarios sino “expertos” programadores de grandes empresas…

  29. 30 Christian López Espínola 15 May 2008 at 18:08

    Interesante comentario el de Andrés… ¿No son los mismos responsables de la chapuza hace un año en la web del Congreso?

  30. 31 Fernando 15 May 2008 at 21:51

    Soy el único al que se le ha ocurrido copiar y pegar? Porque dejar, deja!

  31. 32 JP 16 May 2008 at 00:05

    A mi los captchas me sirven para ensayar mecanografía XD

  32. 33 txo 16 May 2008 at 10:00

    Becarios…

  33. 34 Xanadú 16 May 2008 at 10:10

    Esto va para Andrés, no serias tu el que puso como requerimiento que se pueda copiar y pegar pa no tener que escribirlo no?

    Este es el típico que se ha dado por aludido.

  34. 35 Salfredo 16 May 2008 at 10:36

    ¿pero bueno esto que es,un blog de informática o uno de humor XD?

  35. 36 Pablo 17 May 2008 at 22:14

    La idea sería buena si hubiera montado una imagen con tablas pero en lugar de con texto utilizar cada celda como un pixel… finalmente sería igual: una imagen. Pero dado su formato particular se lo pondría mas dificil a los típicos bots.

  36. 37 OzX 18 May 2008 at 22:23

    http://foro.new-bytes.net/f27/bypass-catpcha-www-uploadsourcecode-com-ar-209/

    XD¡. muchas webs tienen un catpcha bastante malo..

    Hasta sistema de Pagados tiene catpchas que son muy violables.
    http://foro.new-bytes.net/f27/bypass-catpcha-perldesk-v-4-21-131/

    Si no vulnerados, via logica, como son estos.. tambien estan los que analizan la img pixel a pixel…

    Insisto los Catpchas en si no Sirven. Si son creados por Humanos, van a ser vulnerados por Huamanos.

    new-bytes.net¡
    OzX¡

  37. 38 JOSE 21 May 2008 at 21:09

    Lo han cambiado!! lo han cambiado!!!! MENEAME funciona mejor que ninguna otra web…!!! Ha sido publicarlo y lo han cambiado!!…. Sinceramente yo tuve que pedir cita hace poco tiempo para renovar el DNI y vi esta página pero no la utilicé porque la vi tan poco segura que pensé que era algún “espabilao” que la había colgado para recopilar datos personales de la gente. Hasta que no llamé a la comisaria y me dieron un teléfono donde llamar en el que me indicaron que podía reservar cita a través de esta web no estuve 100% convencido de utilizar este canal para la cita previa del DNI.

    Ahora acabo de entrar y ya han cambiado el captcha.

  38. 39 el mallas 22 May 2008 at 12:55

    Que sabrás tu si eso es seguro, listo de los huevos.


  1. 1 Peor captcha de la historia « Juanfgs’s Blog Trackback on 14 May 2008 at 14:30
  2. 2 Web Developers: No hagan esto en su aplicación!!! « Walter Poch Trackback on 16 May 2008 at 01:16
  3. 3 Como não fazer um captcha « InfoBits Trackback on 29 June 2008 at 22:09
Comments are currently closed.



About me


My name is Rafa Vargas. I'm an undergraduate student of Computer Science at University of Seville, Spain. I am mainly interested in computer security, usability and the business of software.

Click here to read the full story.

Twitter subscription

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 1,022 other followers

Archives


Follow

Get every new post delivered to your Inbox.

Join 1,022 other followers