XSS permanente en Tuenti

2008 June 8
by Pedro Laguna

Muy buenas! Hoy os voy a contar la historia de lo que pudo ser y no fue… De como un fallo de XSS permanente en Tuenti podría haber permitido la creación de un gusano. Antes de empezar dejar constancia de que el fallo ya no es reproducible (aunque lo mismo existen fallos XSS en otros lados… ;) ) debido a que los desarrolladores fueron avisados y subsanaron el error.

Bien, para empezar os comentare para los que no lo sepáis que Tuenti es una red social de estas tan en boga actualmente que parece que esta teniendo un tremendo éxito entre los jóvenes españoles. Hacia tiempo que tenia cuenta pero no fue hasta hace dos semanas que me metí para analizar, jugar y divertirme un rato.

Buscando como ando siempre fallos de seguridad, “entrenando” para mi trabajo, encontré que era posible crear un evento donde en la descripción del mismo podíamos introducir código Javascript. En el evento podemos invitar a nuestros lista de amigos y estos al entrar pueden decidir si van o no, ademas de escribir comentarios. Hay que hacer notar que cuando nos invitan a un evento nos aparece en nuestra ventana principal un enlace diciendo que hemos sido invitados y al hacer clic aparece el nombre del evento y su descripción.

Con estos datos y con un poco de imaginación se me ocurrió realizar un gusano xss introduciendo código Javascript en un evento e invitar a todos mis amigos. El gusano debería de:

  • Cada amigo que entrase a ver (NOTA: ¡Solo con verlo!) el evento invitaría automáticamente a toda su lista de invitados, creando posibles nuevos infectados.
  • Autoaceptaria la invitación por parte del usuario infectado.
  • Eliminaría de la pantalla el formulario que permite cambiar la decisión tomada en el punto anterior, para evitar que nadie se quitase del evento.
  • Me añadiría como amigo, siempre me ha gustado eso de ser popular. :P

Por ejemplo, para autoaceptar la peticion el codigo de nuestro gusano simplemente deberia de realizar una peticion (mediante AJAX, <img>, <iframe>…) a la siguiente URL, siendo X el numero del evento:

http://www.tuenti.com/index.php?aj=&func=event_acceptrequest&event_id=X

Eliminar de la pantalla el formulario donde se toma la decision de ir o no al evento es tan simple como hacer un:

document.getElementById([ID del form]).innerHTML = “”;

Y, quizas, lo mas enrrevesado seria el mandar la invitacion a todos los amigos de la lista de amigos del usuario infectado, pero accediendo a la variable friends_list que disponemos en el codigo de la pagina podemos obtener los IDs de todos los amigos del usuario infectado e invitarlos a todos mediante una peticion POST del siguiente tipo:

http://www.tuenti.com/?&if=

POST /?&if= HTTP/1.1
Host: www.tuenti.com
Content-Type: multipart/form-data; boundary=
Content-Length: 895

Content-Disposition: form-data; name=”func”

event_invite

Content-Disposition: form-data; name=”ot”

content_events

Content-Disposition: form-data; name=”m”

event_o_matic

Content-Disposition: form-data; name=”create_step”

3

Content-Disposition: form-data; name=”event_id”

X

Content-Disposition: form-data; name=”users”

12345678

Content-Disposition: form-data; name=”addfriend_12345678″

12345678

Al final todo esto quedo en nada. Hice lo que tenia que hacer y avise a los desarrolladores de Tuenti, que amablemente me contestaron dandome las gracias y corrigiendo el error en la mayor brevedad posible. Pero antes de que fuesen avisados me tome la libertad de hacer unas capturas para dejar constancia de lo que se podia llegar a hacer:

Y nada mas, cuando se hackea un sitio se suele poner una dedicatoria en plan:

Greetz to 3l17e h4X0r, my gf and A Team!

Aunque yo no he llegado a hacer nada me gustaria de todas maneras dedicarle el post a lorena, ella sabe porque ;)

10 Responses leave one →
  1. 2008 June 8

    Grande Pedro, grande :)

  2. 2008 August 22
    Manuel permalink

    Jajaja que crack, imagínate que lo haces, haber la gente luego como se desapunta del evento xDDDDD. Muy bueno de verdad ;)

  3. 2008 August 31
    Andre permalink

    tengo un problemilla con tuenti.Me aparece de una forma extraña y para abajo…y no me deja comentar.alguna suerencia?Gracias.

  4. 2009 February 24
    irene permalink

    en tuenti ahora se necesita javascript??? :S

  5. 2009 March 30
    fermin permalink

    hola!! soy fermin mas conocido como el “celestino” estoy preocupado por el javascrip

  6. 2009 April 3

    una pena, me hubiese gustado crear un worm xss para tuenti.

    Muy buen trabajo.

  7. 2009 April 15
    roberto permalink

    oyee ayudenmee poder volver a conectarme al tuenti que me pide un javascript que no se ni lo que es?

  8. 2009 June 17

    Todavia siguen con problemas… Aparte de un pequeño Directory Traversal… Le he mandado un correo pero no sirve de nada… De toda forma he vista que estan buscando gente con conocimientos de seguridad…

Trackbacks & Pingbacks

  1. Morir de éxito « Oh My Blog! I Can’t Believe It!
  2. la importancia de reportar un fallo « Equilibrio Inestable

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS