Mini curso gratuito sobre desarrollo de aplicaciones para iPad

CTF #nullcon 2012: Crypto 2

  • February 3, 2012
  • tuxotron
  • nullcon1.jpg

    En esta prueba nos daban un enlace (http://www.nullcon.net//challenge/data/shhhkoinahihai). Cuando abrías dicho enlace no se veía nada, todo blanco y lo mismo si miramos el código fuente de la página.

    Nos bajamos el fichero, lo abrimos con un editor de textos y nada, todo blanco, pero sí que te podías mover por el contenido del fichero. Pero si lo abrimos con un editor hexadecimal:

    Selection_001.png

    Vemos que lo que contiene son el carácter 20h (espacio) y el 09h (tabulador). Mi primera idea fue convertir los tabuladores en guiones y los espacios en puntos, para así tener algún tipo de código morse, pero no me llevó a ningún sitio.

    Después de cavilar un rato se me ocurrió convertir esos caracteres a 0 y 1 y así tener un texto en binario. Cuando lo hice, comprobé que la longitud del mismo era múltiplo de 8, lo que tenía buena pinta. Así que me escribí el script que pongo a continuación, dónde convierto el tabulador en 0 y el espacio en 1 y cada 8 bits imprimo el carácter ASCII correspondiente:

    #!/usr/bin/env ruby
    
    f = File.open('shhhkoinahihai','r')
    bin_char = ''
    f.each_byte do |b|
            if b == 9
                    bin_char += '0'
            else
                    bin_char += '1'
            end
            if bin_char.length == 8
                    print bin_char.to_i(2).chr
                    bin_char = ''
            end
    end
    puts
    f.close

    Y si ejecutamos dicho script el resultado que obtenemos es nuestro flag:

    Error Message: Your Password Must Be at Least 18770 Characters and Cannot Repeat Any of Your Previous 30689 Passwords - MS KB 276304

CTF #nullcon 2012: Crypto 1

  • February 3, 2012
  • tuxotron
  • nullcon1.jpg

    En la primera prueba sobre criptografía nos dan una cadena de texto cifrada, cuyo texto en claro en nuestro flag.

    El texto era el siguiente:

    Oexjwok -333 lauiljt bwxylexk hilyruik krbf lk yfi frzlx jekbeqaexi bwzqwxixy. ofiui yfi QB blx kixj lx iaibyueb kfwbs yfuwrgf yfi sitcwluj eh yfi frzlx jwik kwziyfexg yfly jwik xwy qailki Oexjwok, 2 Ceaa Glyik

    Para esta prueba, al menos cuando yo empecé a hacerla, teníamos una pista: poiuy y además si miramos el código de la página, vemos:

    
    

    Esta imagen:

    recycled-keyboard-computer-mirror1_VXLbh_24429.jpg

    Analizando la pista: poiuy, vemos que es una secuencia de teclas consecutiva, al igual que qwert y además en la imagen vemos un teclado con un espejo. Si ponemos un espejo un espejo delante del teclado las teclas está en el lado opuesto. Por lo que las teclas:

    p <=> q w <=> o a <=> l z <=> m 1 <=> = 2 <=> - , <=> . etc

    Si hacemos esa sustitución en el texto dado nos encontramos con:

    Windows 2000 already contains features such as the human discipline component, where the PC can send an electric shock through the keyboard if the human does something that does not please Windows. - Bill Gates

    El cual es nuestro flag. La forma en que solucioné está prueba fue, una vez tenía descifrada las primeras palabras, busqué en Google y me llevó a la solución.