0% encontró este documento útil (0 votos)
74 vistas8 páginas

WriteUp WebOfuscate

El documento describe un reto de dificultad fácil relacionado con la ofuscación de código en un archivo HTML. Los participantes deben revisar el código y encontrar la contraseña de acceso, que se obtiene al desofuscar el JavaScript y concatenar dos cadenas. La solución final es 'accessgranted1337'.

Cargado por

rafarghu
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
74 vistas8 páginas

WriteUp WebOfuscate

El documento describe un reto de dificultad fácil relacionado con la ofuscación de código en un archivo HTML. Los participantes deben revisar el código y encontrar la contraseña de acceso, que se obtiene al desofuscar el JavaScript y concatenar dos cadenas. La solución final es 'accessgranted1337'.

Cargado por

rafarghu
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Academia Hacker INCIBE

Web Ofuscate

Dificultad: Fácil

Categoría de Reto: Web


ÍNDICE
ÍNDICE DE FIGURAS ............................................................................................ 2
ÍNDICE DE TABLAS .............................................................................................. 2
Contexto ............................................................................................................ 3
Descripción para participantes ....................................................................... 4
Pistas ................................................................................................................. 5
Solución ............................................................................................................ 6
Video.................................................................................................................. 8

ÍNDICE DE FIGURAS
No se encuentran elementos de tabla de ilustraciones.

ÍNDICE DE TABLAS
No se encuentran elementos de tabla de ilustraciones.

. Página 2 de 8
CONTEXTO
En una de las clases de informática a las que asistes te asignan la tarea de mirar el código
de un fichero html que formará parte del aplicativo que están desarrollando otros
compañeros. Revísalo y confirma las dudas que tiene el profesor.
Flag: accessgranted1337
Datos Proporcionados:
 Archivo .html

. Página 3 de 8
DESCRIPCIÓN PARA PARTICIPANTES
En una de las clases de informática a las que asistes te asignan la tarea de mirar el
código de un fichero html que formará parte del aplicativo que están desarrollando otros
compañeros. Revísalo y confirma las dudas que tiene el profesor.

¿Cuál es la contraseña de acceso? El código parece ofuscado.

. Página 4 de 8
PISTAS
1. Toda la acción se ejecuta del lado de cliente sin intervención remota de ningún
servidor. Es decir, client-side o parte de cliente, interviene en la validación. En
este caso Javascript ofuscado. Intenta ordenar el código y ver que hace.

2. Si la lectura manual se complica, mira en [Link] para ver


un poco mejor la lógica de la función.

3. Mira la función “verify()”. Se concatenan dos strings que son la contraseña.

. Página 5 de 8
SOLUCIÓN
Si abrimos en el navegador el fichero proporcionado, vemos que nos pide una clave.

Debemos encontrar el usuario y contraseña para acceder al aplicativo. Se decide


enumerar los ficheros y directorios con “wfuzz”. Esta herramienta permite, en base a una
lista diccionario de directorios conocidos,conocer la existencia de estos.

Si observamos el código fuente javascript, a simple vista está ofuscado. Podemos intuir
varias cadenas pero lo mejor es utilizar una herramienta online para hacerlo legible.

var
_0x2ad0=['Incorrect\x20password','OK\x20,\x20flag{password}','1414812FnzZML','2ZuZoOq','
720827WQlMo
g','password','granted1337','25459OvNsVk','1359268dQuzsW','647302iqoESf','getElementById
','1407845X bPGsA','access','1163212MgQrRV','value','5eMgJYX'];var
_0x1f21=function(_0x403766,_0x2892cb){_0x403766=_0x403766-0x14a;var
_0x2ad07f=_0x2ad0[_0x403766];return _0x2ad07f;};(function(_0x1d7e2f,_0x1e9b0f){var
_0xe5fd8e=_0x1f21;while(!![]){try{var
_0x20dbc3=parseInt(_0xe5fd8e(0x14e))*parseInt(_0xe5fd8e(0x156))+-
parseInt(_0xe5fd8e(0x153))+- parseInt(_0xe5fd8e(0x14c))+-
parseInt(_0xe5fd8e(0x151))+parseInt(_0xe5fd8e(0x152))*parseInt(_0xe5fd8e(0x158))+parseIn
t(_0xe5fd8e (0x157))+parseInt(_0xe5fd8e(0x14a));if(_0x20dbc3===_0x1e9b0f)break;else
_0x1d7e2f['push'](_0x1d7e2f['shift']());}catch(_0x192125){_0x1d7e2f['push'](_0x1d7e2f['s
hift']());} }}(_0x2ad0,0xd9531));function verify(){var
_0x33f5f4=_0x1f21;password=document[_0x33f5f4(0x159)](_0x33f5f4(0x154))[_0x33f5f4(0x14d)
];var
_0x1ccb0d=_0x33f5f4(0x155);password==_0x33f5f4(0x14b)+_0x1ccb0d?alert(_0x33f5f4(0x150)):
alert(_0x33 f5f4(0x14f));}

Vamos a ir a esta Herramienta desofuscar para desofuscarlo.

Observamos un array de cadenas.

var _0x2ad0 = ['Incorrect password', 'OK , flag{password}', '1414812FnzZML', '2ZuZoOq',


'720827WQlMog', 'password', 'granted1337', '25459OvNsVk', '1359268dQuzsW', '647302iqoESf',
'getElementById', '1407845XbPGsA', 'access', '1163212MgQrRV', 'value', '5eMgJYX'];
var _0x1f21 = function (_0x403766, _0x2892cb) {
_0x403766 = _0x403766 - 0x14a;
var _0x2ad07f = _0x2ad0[_0x403766];
return _0x2ad07f;
};

La función verify() que contiene:

function verify() {
var _0x33f5f4 = _0x1f21;
password = document[_0x33f5f4(0x159)](_0x33f5f4(0x154))[_0x33f5f4(0x14d)];
var _0x1ccb0d = _0x33f5f4(0x155);
password == _0x33f5f4(0x14b) + _0x1ccb0d ? alert(_0x33f5f4(0x150)) : alert(_0x33f5f4(0x14f));
}

. Página 6 de 8
La comparación de la clave se realiza en la última línea. Si pegamos en la consola del
navegador la concatenación de dos cadenas del array, obtenemos la clave.

Solución: accessgranted1337

. Página 7 de 8
VIDEO
Solución reto "Web Ofuscate"

. Página 8 de 8

También podría gustarte