WriteUp WebOfuscate
WriteUp WebOfuscate
Web Ofuscate
Dificultad: Fácil
Í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.
. 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.
. Página 5 de 8
SOLUCIÓN
Si abrimos en el navegador el fichero proporcionado, vemos que nos pide una clave.
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));}
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