PDF de programación - Boinas Negras: una solución al concurso

Imágen de pdf Boinas Negras: una solución al concurso

Boinas Negras: una solución al concursográfica de visualizaciones

Publicado el 28 de Junio del 2017
832 visualizaciones desde el 28 de Junio del 2017
394,9 KB
39 paginas
Creado hace 21a (24/02/2003)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Boinas Negras: una solución al concurso

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=



-= Fecha Publicación: 25.02.2003 =-



Román Medina-Heigl Hernández



<[email protected]>



Boinas Negras: una solución al concurso. © RoMaNSoFt, 2003

ÍNDICE DE CONTENIDOS

Introducción

.................................................................. 1

Nivel 1

........................................................................... 2

Nivel 2

........................................................................... 2

Nivel 3

........................................................................... 3

Nivel 4

........................................................................... 9

Nivel 5

........................................................................... 11

Nivel 6

........................................................................... 15

Nivel 7

........................................................................... 16

Nivel 8

........................................................................... 17

Nivel 10

........................................................................... 19

Nivel 9

........................................................................... 25

Opinión y crítica

......................................................... 35

Despedida y cierre

......................................................... 37



Boinas Negras: una solución al concurso. © RoMaNSoFt, 2003



--[ Introducción ]


"Boinas Negras" ha dado nombre al concurso elaborado por Instisec y celebrado recientemente.
Este artículo es resultado de mi experiencia como concursante del mismo. A lo largo de este texto
trataré de relatar y discutir las distintas pruebas (o retos -del inglés "challenge"-) así como las
soluciones tomadas para la resolución completa del concurso.


El concurso se ubicó en:

http://www.boinasnegras.com/


Constaba de 10 niveles. En cada uno de ellos se trataba de averiguar un usuario y contraseña,

para poder pasar al nivel siguiente (aunque hay excepciones, tal y como veremos más adelante).


Los tres primeros concursantes que lograron resolver todas las pruebas fueron:


mandingo
Out
Vaijira

07/05/2002 21:18:00
07/05/2002 21:55:28
08/05/2002 2:55:15


El que escribe estas líneas quedó en un modesto noveno puesto, a tan sólo 14 horas de la
finalización del ganador. Esto da una idea de cómo trascurrió la finalización del concurso: dema-
siado “apretada”.


Los “ganadores”(1) debían aportar documentación a la Organización donde se explicara al
detalle cómo habían conseguido superar las distintas pruebas. De hecho, este texto fue escrito con
esa finalidad y presentado a la Organización originalmente el 10.05.2002 (un par de días después
de que consiguiera resolver el concurso). El concurso realmente acabaría cuando 25 personas con-
siguieran acabarlo con éxito. Por esta razón mi idea desde un principio fue documentarlo lo mejor
posible de forma que pudiera servir como tutorial tras la finalización del mismo.


Sin embargo, fue tal el éxito de Boinas Negras que la Organización decidió dejar on-line el reto
durante un tiempo de forma que la gente pudiera seguir divirtiéndose. A petición de la Organi-
zación decidí retrasar la publicación de este artículo ya que estaba demasiado reciente el concurso y
aún había gente enzarzada con las últimas pruebas y llevaba poco tiempo peleándose con ellas.


El tiempo pasó y aproximadamente un mes después me puse en contacto con la Organización
para informarles de que iba a publicar mi documentación. Una vez más me pidieron que demorara
la publicación e insinuaron que deseaban dejar las pruebas on-line al menos durante un mes más.
Yo accedí.


Finalmente han pasado ocho largos meses y creo que ha sido tiempo suficiente. La penúltima
prueba ha desaparecido de la web y el interés por lo que no es más que un simple juego ha decaído
mucho e incluso hay mucha gente que lo ha abandonado al haber quedado atascado en alguna
prueba.


Para toda esta gente que se quedó en el camino, para todos los que consiguieron superar con
éxito todas las pruebas y quisieran contrastar soluciones, para los que no pudieron disfrutar de la ya
extinguida penúltima prueba, para los que ni siquiera comenzaron el concurso pero tienen grandes
ganas de aprender. A todos ellos va dedicado este texto.

(1) La Organización entiende por “ganador” todo aquel que consiga superar los diez niveles del concurso.

1

Boinas Negras: una solución al concurso. © RoMaNSoFt, 2003



--[ Nivel 1 ]


Este nivel es más de ingenio e idea feliz que otra cosa. Debemos averiguar una contraseña.

Lo primero que se nos ocurre es mirar el código fuente pero en principio no vemos nada
extraño. En mi caso también probé otras técnicas clásicas, como inyectar sentencias SQL, pero no
funcionó: los tiros no iban por ahí. Era algo más simple.


Si nos fijamos, cuando introducimos una contraseña incorrecta el sistema nos da el siguiente

mensaje:


"La password es incorrecta"

Pues bien, ¡hay que interpretarlo al pie de la letra! Es decir, probamos como contraseña:

"incorrecta".

No es la solución final pero sabemos que andamos cerca ya que esta vez el sistema nos
responde con un críptico mensaje hablando de "lo visible y lo invisible" en vez del mensaje de error
habitual. Deducimos que falta algo "invisible" para completar la password. Recordamos que la
palabra "incorrecta" estaba en negrita, y efectivamente, si nos vamos al fuente HTML tenemos la
solución:


Solución: <b>incorrecta</b>

--[ Nivel 2 ]


El nivel anterior era un poco tonto, ¿verdad? Aquí ya empezamos a entrar en materia, aunque
con tranquilidad. Vamos, que este nivel sigue siendo bastante sencillo. Ummm, para qué
engañarnos, la verdad es que está chupado :-)


En este caso el sistema de autentificación es un applet de Java. Los fuentes de Java (.java) se
compilan resultando un fichero .class. Pero a diferencia de otros lenguajes el fichero "compilado"
resultante contiene la gran mayoría del código fuente original, y por tanto, a partir del .class
podemos obtener fácilmente el .java correspondiente. Y claro, si tenemos el fuente podemos ver
perfectamente lo que hace, y como no, la contraseña usada. En la práctica existen programas
llamados de "ofuscación" cuya función es "empañar" el código fuente para que sea más difícil su
lectura a un potencial ladrón de código. Por ejemplo, eliminan todos lo comentarios del fuente,
sustituyen los nombres de variables por otros al azar sin sentido, y en definitiva toda argucia que
haga más difícil seguir el flujo del programa e interpretar el código, sin afectar a la funcionalidad
del mismo.



Mirando el fuente HTML de la prueba observamos que la llamada al applet es algo como:


2



Boinas Negras: una solución al concurso. © RoMaNSoFt, 2003

<applet code="PasswordApplet.class" archive="none" name="Applet"

width="350" height="30" VIEWASTEXT id="Applet">


Si consultamos "The APPLET Tag":
http://java.sun.com/products/jdk/1.1/docs/guide/misc/applet.html

vemos que el applet está contenido en un archivo, en este caso llamado "none".

De hecho, si intentamos:
http://www.boinasnegras.com/autenticacion/nivel2/PasswordApplet.class

el archivo no existe. Luego estará contenido en el archivo:
http://www.boinasnegras.com/autenticacion/nivel2/none

Miramos el .class con algún decompilador (en mi caso he usado Decafe Pro 3.9). La función

Comprobar() termina así:



return tPassword.getText().equals("SecurityException");

Luego la función es exitosa cuando la clave que introducimos es la misma que la de la cadena

que aparece en dicha línea. Por tanto, ahí tenemos la clave.


Solución: SecurityException

--[ Nivel 3 ]

Este nivel es bastante más técnico que el anterior y va a poner a prueba nuestros conocimientos

de programación.


Tenemos una página HTML "encriptada" (hasta lo que se puede) con un programita llamado

"HTMLock".


Es curioso. Para los que le interese echarle un vistazo podéis bajaros la versión 1.8.1 de la

página web de Atrise:

http://www.atrise.com/htmlock/index.php

Si la página está "encriptada", ¿cómo es que el navegador la muestra correctamente? ¿Cómo
podemos "desencriptar" la página nosotros? Bien, el esquema de la página es algo así como
(pseudocódigo):



variable=<página encriptada>

desencriptar(variable)

Es decir, la primera parte de la página contiene la página "real" encriptada (lo que en realidad
muestra el navegador). La siguiente y última parte contiene la rutina de "desencriptación" en
JavaScript. El navegador ejecuta dicha rutina, y va desencriptando y generando la página en tiempo
real. Para ello hace uso del método document.write() de JavaScript.

3



Boinas Negras: una solución al concurso. © RoMaNSoFt, 2003

El problema es que al ser generada la página dinámicamente (a partir del texto "encriptado") si
en el navegador hacemos click en "ver código fuente" lo que vemos es la función en JavaScript con
el texto encriptado y la rutina de desencriptación, en lugar de la página real. El navegador interpreta
en tiempo de ejecución el código HTML generado en los document.write() de forma que dicho
HTML no queda plasmado como código fuente de la página y por tanto no se puede visualizar (en
principio).


(nota: en realidad se usa document.writeln(), pero me gusta simplificar algunas explicaciones

para que se entiend
  • Links de descarga
http://lwp-l.com/pdf4741

Comentarios de: Boinas Negras: una solución al concurso (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad