Documentación y write ups: QR Code

Documentación y write ups: QR Code

(Figura 1)En la mayoría de los CTF/Wargames en los que hemos participado hasta el momento, siempre tenemos que enfrentarnos con pruebas relacionadas con el tan conocido QR, hago apertura de este espacio para ir recopilando información de cultura general sobre los códigos QR y para adjuntar los diferentes Write-Up de las pruebas relacionadas con este.

Datos de interés

  • Los QR code son de dimensión n x n lo que implica que deben ser cuadrados.
  • Los cuadros de la esquina definen la posición en que se encuentra el QR por lo tanto puede ser leído en cualquier angulo.
  • Se debe respetar el borde blanco al rededor de los tres recuadros de las esquinas.
  • Los cubos se encuentran “conectados” por una linea intermitente de pieles blancos y negros (iniciando siempre en negro) entre sus esquinas internas (está era la corrección del CTF-SdbI).
  • Si el QR se lee desde un dispositivo móvil como PDA o iPod este puede estar en escala de grises o en varios colores, mientras su fondo sea blanco no se altera su lectura.

Formas de representar un QR

En el pCTF vimos como se nos dio un QR code por medio de valores RGB, lo cual demuestra que no solo por medio de imágenes se pueden representar estos, pero es obvio que siempre se necesita de un proceso con el cual podamos pasar estos a imagen, unas de las principales representaciones se listan a continuación, no digo que sean todas dado que la cantidad depende únicamente de la imaginación (una muestra es el QR Legos Blender).

La forma mas común es su representación con los colores blanco y negro:

También puede ser representado empleando otros colores mientras mantenga su estructura:

Como se presentó en el pCTF puede estar representado en valores RGB:

45 45
255
255 192 192
255 192 192
255   0   .....

Otra forma no muy común pero lógica, es su representación en binario:

111111001101111001111111|
1000001010100011101000001|
1011101000011001101011101|10111...

Otros códigos QR

  • QR: De código abierto, casi todos los lectores pueden acceder al contenido sin problemas.
  • DataMatrix: Tiene más capacidad. La mayoría de lectores de QR permiten leer DataMatrix, aunque no todos. Permite incluir lemas y slogans publicitarios.
  • BlotCode: De momento sólo útil para lectores BlotCode de iPhone.
  • QuickMark: Más orientado al etiquetado de productos para la venta online. Requiere su propio lector.
  • ShotCode: Diseñado para cualquier tipo de cámara fotográfica o de video. Permite una lectura y escaneado en cualquier ángulo de giro.
  • BeeTagg: Sólo puede leerse con el lector del fabricante. Permite el uso de colores y logotipos en su interior. Se usa en publicidad y promociones en prensa en Escandinavia, pero implica un coste para el usuario.

Micro QR y QR Code

Micro QR: Soporta 11×11 hasta 17×17 módulos:

M1:11x11
 M2:13x13
 M3:15x15
 M4:17x17

QR Code: Soporta 21×21 hasta 117×117 módulos. Los niveles de este aumentan de 4 en 4 hasta obtener su máximo 117.

M1:21x21
M2:25x25
M3:29x29
M4:33x33
Mn= ... 

Software de lectura de códigos QR para moviles

  • BeeTagg: Lee QR, DataMatrix y BeeTagg. Permite descargarlo vía web.
  • Nokia: Permite leer códigos QR en algunos dispositivos de la marca.
  • QuickMark: Lee QuickMark, QR y DataMatrix. Existe una versión para PC.
  • zXing: Lector de código abierto impulsado por Google. Probablemente el más compatible, gratuito, y que lee códigos de barras 1D y 2D: UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 128, QR, DataMatrix, PDF 417 e ITF.
  • Upcode: Lee el formato propio Upcode, QR, DataMatrix y códigos de barras 1D.
  • IMatrix: Aplicación a la venta que lee QR, Blotcode, ShotCode y DataMatrix desde IPhone.
  • NeoReader: disponible en AppStore, para los IPhone.
  • Optiscan: disponible en AppStore, para los IPhone. Lee QR.
  • iDecode: Para los iPhone, lee QR y DataMatrix. Se conecta a Internet.
  • Glass: Lee DataMatrix. Existe una aplicación para Windows y Mac, en función del modelo de teléfono móvil utilizado.
  • I-nigma: Descarga por medio del teléfono vía Internet. Lee DataMatrix y QR.
  • Kaywa Reader: El que utilizamos en Interdixit. El más robusto y fiable de los probados hasta el momento. Lee QR y DataMatrix. Se puede descargar en el PC.
  • NeoReader: Lee QR.
  • Okotag: Antes se llamaba Snap-a-Bar. Lee QR, DataMatrix, EAN-13 y EAN-8, además de Aztec Code.

WriteUps relacionados con QR CODE

Challenge Two – isec2010

Nos dieron un jpg que se ve muy similar a un código QR:

Sin embargo, cuando comparamos el código QR ​​para ejemplos en la wikipedia podemos ver que el código QR ​​tiene una región de la alineación de arriba abajo. Desde los bloques de esquina necesidad de permanecer intacta, simplemente supuso que las demás regiones deben ser invertidos en 3 bloques de este modo:

Después de invertir nos aparece esto:

Que obtiene con cualquier lector de código de barras como un bloque de texto que contiene la llave. Clave: Qr_CodE_InVeRse

Security by Default – Web100

Este reto cuenta de dos partes una primera que es el QR y una segunda que era solucionar 666 QR’S en menos de 20min, pero por el tema de este articulo vamos a centrarnos en la solucion de los QR’S. Los QR code se mostraban de la siguiente forma:

Lo primero que intentamos fue para procesar la imagen QR, pero sin suerte porque no devuelve ninguna información. Este QR Code no tenía bloques de datos. Apertura de la imagen con el GIMP y mirando a sus propiedades, nos dimos cuenta de que había tres colores en la paleta de colores, pero mirando a la imagen que vi sólo dos: blanco y negro. En la paleta, había dos entradas con casi el mismo valor de [RGB (255,255,255) y RGB (254,254,254)] del que forman parte de la imagen invisible.

Una vez que nos dimos cuenta de que hemos cambiado el tercer color negro haciendo visible en los bloques de datos ocultos.

De esta forma se logro acceder al contenido del QR Code.

pCTF – 30Sticky Note

balablabla…. Uno de los más inteligentes se le ocurrió un nuevo esquema. Sólo “cifrar” la contraseña de guardarla en un qrcode! De esta forma, sólo podía explorar y encontrar su contraseña, pero su jefe no sabía lo que estaba pasando. Este QRCode se encontró impreso y grabado para controlar de un empleado. Encuentra la llave.


–> De forma vertical

pCTF – 50Family Photo!

Este reto era una seria de QR Code embebidos en un gif, como se muestra a continuación:

Luego con algún software como GIF Animator u obteniéndolos del hexa o por medio de alguna otra herramienta se logra obtener 12 QR’S de los cuales 9 se les puede extraer el texto plano, otros dos que se deben arreglar para poderlos leer y un último del cual no se logra obtener contenido… les adjunto él  archivo. Al leerlos tienen el siguiente contenido:

  1. not:b2c3e317682929a3255a5e6433ccc5be
  2. not:dundundundundundundundundundundun
  3. not:madewithzxingmadewithzxingmadewithzxing
  4. not:anotherdayanotherqranotherdayanotherqr
  5. not:junkiswhatthisisjunkiswhatthisis
  6. not:dongdongdongdongdongdongdongdong
  7. not:pctfisbestctfpctfisbestctfpctfisbestctf
  8. not:dingdingdingdingdingdingdingdingding
  9. not:I like keys for fun fun fun fun fun fun fun
  10. not:eef43fc5e1e5e8a1e2716d3e2c9dd07e
  11. not:6eca8051932e5b14700b783b934a3e61
  12. no found

Pero es obvio que los bloques de pixeles grises deben ser la clave para la solución del reto, por lo tanto al tomar una imagen con la estructura base y agregarles los grises se obtiene la solución del reto, un QR legible.

–> copiando los grises byte 22 en su defecto –>

Clerigo (o Monje) es ingeniero de Sistemas, apasionado por el desarrollo del software y un curioso por saber el funcionamiento interno de cada cosa. Project manager de RIC.

Artículos Relacionados

1 Comentario

  1. Blog de JPilldev » ¿Qué es el código QR? - noviembre 25, 2011, 1:35 am Responder

    […] de información y enfasis. Para una explicación mas detallada de los códigos QR podemos revisar: http://www.redinfocol.org/documentacion-qr-code […]

Deja un comentario

Tu email no será publicado.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*