Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: Tryptophan en 13 Marzo 2009, 06:20 am



Título: FQL Injection (?)
Publicado por: Tryptophan en 13 Marzo 2009, 06:20 am
Esto es solo algo de lo que se puede hacer con FQL, lo demas, es creatividad de ustedes  ;D

Bien, en primer instancia, que es FQL?. FQL es el facebook query language, un lenguaje de consulta proporcionado por dicha empresa para el desarrollo de aplicativos y otras yerbas  :P http://wiki.developers.facebook.com/index.php/FQL (http://wiki.developers.facebook.com/index.php/FQL).

Vayamos al grano directamente....
Me encontraba boludeando en la parte de las tablas de FQL, exactamente en la de ALBUM y note que 2 atributos de la tabla eran LOCATION y LINK (la locacion del album) y haciendo la siguiente consulta en http://developers.facebook.com/tools.php (http://developers.facebook.com/tools.php).

SELECT location, link
FROM album
WHERE owner=xxxxxxxxxx

Siendo el owner un user id de CUALQUIER USUARIO, me encontre con el aid (album id) q se usa para la visualizacion de albumes . Asi se lo visualiza:

http://www.facebook.com/profile.php?id=MIID&v=photos&viewas=MIID#/album.php?aid=yyyyyyy&id=MIID

Ahora, q pasa si yo pusiera el id de CUALQUIER USUARIO, sabiendo q puedo obtener su aid con una consulta FQL?. Exactamente, podria ver su album sin siquiera ser su amigo...

Pongamos un ejemplo:

Me gustaria ver el album de pepito, q hago entonces?. En primer lugar lo busco, saco su id (en el link de "ver amigos" aparece...), hago la consulta FQL para sacar su aid. Despues pongo en la URL

http://www.facebook.com/profile.php?id=IDPEPITO&v=photos&viewas=MIID#/album.php?aid=yyyyyyy&id=IDPEPITO

Y voila...

Cualquier critica, correcion, etc, ya saben donde encontrarme.
Saludos
Tryptophan


Título: Re: FQL Injection (?)
Publicado por: sirdarckcat en 13 Marzo 2009, 08:38 am
Tienes razon!!

Código
  1. SELECT src FROM photo WHERE aid IN (SELECT aid FROM album WHERE owner IN (SELECT uid FROM USER WHERE name="Eduardo Vela"))

Muy buen descubrimiento! Aunque no seria "injection", mas bien es que como que se les olvido que la relacion aid<->uid no deberia ser indexable..

En cualquier caso, muy buen descubrimiento, hacer un "PoC" deberia ser relativamente sencillo.. ya que Facebook da la API para hacerlo, hacer un buscador de personas que te muestre sus fotos estaria cool!

Si quieres reportar la vulnerabilidad (que de todas formas ya la hiciste publica), manda un mail a secure@facebook.com..

En cualquier caso, buen descubrimiento! si necesitas ayuda dinos.

Saludos!!


Título: Re: FQL Injection (?)
Publicado por: Tryptophan en 13 Marzo 2009, 13:35 pm
claro....pasa q a las 3 de la mañana no me daba el cerebro para ver q nombre ponerle, jajaja  :P.
Saludos sirdarkcat!!


Título: Re: FQL Injection (?)
Publicado por: AlbertoBSD en 13 Marzo 2009, 17:50 pm
Esta muy interesante, ya lo probe y esta bien pero el problema que ocupas el nombre o el uid, voy a empezar a espiar a los amigos de mis amigos.

Saludos.


Título: Re: FQL Injection (?)
Publicado por: Novlucker en 13 Marzo 2009, 17:54 pm
Interesante, no tenía idea de la existencia de FQL, ojalá se demoren en solucionarlo porque necesito ver unas fotos de alguien que no me ha aceptado  :silbar:   :xD

Edito: En efecto, puedo ver las fotos de todos  :-X
Saludos


Título: Re: FQL Injection (?)
Publicado por: Dacan en 14 Marzo 2009, 23:56 pm
Lo probe si funciona.. me pondre a leer sobre eso de FQL esta interezante.

Saludos, Dacan   :D


Título: Re: FQL Injection (?)
Publicado por: toxeek en 15 Marzo 2009, 17:46 pm

Que tal.

Parece que ya esta corregido.


Saludos.


Título: Re: FQL Injection (?)
Publicado por: Novlucker en 15 Marzo 2009, 22:22 pm
No, si funciona, lo acabo de probar  ;D

Saludos


Título: Re: FQL Injection (?)
Publicado por: Littlehorse en 15 Marzo 2009, 22:43 pm
A mi tampoco me funciona. que raro  :-\ a ver de nuevo.


Título: Re: FQL Injection (?)
Publicado por: toxeek en 15 Marzo 2009, 22:52 pm

Que tal.

Haciendolo todo ( creo que correctamente! ), es esto lo que recibo:

(http://img10.imageshack.us/img10/777/fqli.png)


Bueno, Saludos.


Título: Re: FQL Injection (?)
Publicado por: Littlehorse en 15 Marzo 2009, 23:08 pm
Claro, yo llego a lo mismo pero en Español XD


Título: Re: FQL Injection (?)
Publicado por: Krackwar ™ en 15 Marzo 2009, 23:10 pm
Lo abran arreglado.


Título: Re: FQL Injection (?)
Publicado por: Littlehorse en 15 Marzo 2009, 23:10 pm
No, si funciona, lo acabo de probar  ;D

Saludos


Título: Re: FQL Injection (?)
Publicado por: sirdarckcat en 15 Marzo 2009, 23:31 pm
Pongan esto:
Código
  1. SELECT link FROM album WHERE owner=532437297
aca:
http://developers.facebook.com/tools.php

El link que sale es este:
http://www.facebook.com/album.php?aid=63080&id=532437297

Entran y ven el album.. necesitan tener cuenta en facebook.

Saludos!!


Título: Re: FQL Injection (?)
Publicado por: toxeek en 15 Marzo 2009, 23:38 pm

Que tal.

A ver.. yo uso el Method photos.getAlbums.
Tras ello, en el callback pongo lo citado.

Pero este "bug" deberia de servir para aquellas personas que no son tus amigos, y tienen restricciones puestas para ver su album/perfil.
Mucho me temo que se este probando con personas con el perfil abierto.

Como digo, yo haciendolo asi recibo esa pagina de error..


Saludos.


Título: Re: FQL Injection (?)
Publicado por: Novlucker en 15 Marzo 2009, 23:46 pm
El problema debe de estar aquí  :P
Esta url genera confusión, o bueno, a mi me la generó  :-X
http://www.facebook.com/profile.php?id=MIID&v=photos&viewas=MIID#/album.php?aid=yyyyyyy&id=MIID

Así esta mejor:
http://www.facebook.com/profile.php?id=IDUsuario&v=photos&viewas=MIID#/album.php?aid=yyyyyyy&id=IDUsuario

Al principio ponía Mi ID en todos los campos donde lo decía, pero resulta que el primero y el último son del usuario "victima", solo en el del medio hay que poner la nuestra, y si estaban haciendo esto les debería de decir que "no estaba disponible"  :P

Saludos


Título: Re: FQL Injection (?)
Publicado por: toxeek en 15 Marzo 2009, 23:47 pm
Que tal.

A ver, los que dicen que pueden, pueden hacer algo?
Busquen entre los amigos de sus amigos alguien que no tenga el hypervinculo activado en su nombre ( esto denotara que tiene impuestas restricciones para ver su perfil, y estos son los INTERESANTES ).
Tras ello pues hagan SOLO un click en su foto, y posen el puntero del raton sobre el link como para mandarles un mensaje.
Con el puntero posado, en la parte inferior ( informativa de links ) del Browser podremos obtener su ID.

Bien, tras ello hacemos todo el proceso con la API como se ha citado, para hacernos con el aid.

Pueden ver el album de esa persona??


Suerte.


Título: Re: FQL Injection (?)
Publicado por: EvilGoblin en 15 Marzo 2009, 23:49 pm
Sip ... verdaderamente bueno ^_^ pero veo muchas opciones.. quizas tenga otras cosas para jugar  =D


^^


Título: Re: FQL Injection (?)
Publicado por: sirdarckcat en 16 Marzo 2009, 00:06 am
Miren, otro ejemplo:
http://www.facebook.com/profile.php?id=4 (el creador de facebook, perfil privado)

Código
  1. SELECT link FROM album WHERE owner=4

Código
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true">
  4.  
  5.  <album>
  6.  
  7.    <link>http://www.facebook.com/album.php?aid=2204760&amp;id=4</link>
  8.  
  9.  </album>
  10.  
  11.  <album>
  12.  
  13.    <link>http://www.facebook.com/album.php?aid=2047231&amp;id=4</link>
  14.  
  15.  </album>
  16.  
  17.  <album>
  18.  
  19.    <link>http://www.facebook.com/album.php?aid=2034080&amp;id=4</link>
  20.  
  21.  </album>
  22.  
  23.  <album>
  24.  
  25.    <link>http://www.facebook.com/album.php?aid=2002684&amp;id=4</link>
  26.  
  27.  </album>
  28.  
  29. </fql_query_response>
  30.  
  31.  

Funciona ;)

(http://img18.imageshack.us/img18/1451/markzuck.png)
Saludos!!


Título: Re: FQL Injection (?)
Publicado por: sirdarckcat en 16 Marzo 2009, 00:09 am
Ahhh ya vi su error XDDD

Estaban poniendo &amp; en el link jajaja.. deben cambiar &amp; por &, porque XML convierte chars como & a su entidad en HTML.

Saludos!!


Título: Re: FQL Injection (?)
Publicado por: Littlehorse en 16 Marzo 2009, 00:14 am
Funciona con eso que me pasaste si, pero con el ID que estoy usando yo no, asi que algo raro en los permisos toco porque el ID lo estoy poniendo bien, a seguir probando no mas.


Título: Re: FQL Injection (?)
Publicado por: N1K0 en 16 Marzo 2009, 00:14 am
A mi si me funciona probe varias veces y me devuelve arrays con los links de los albums pero otras veces me devulve <empty string> (uso facebook php client como response format)o por ejemplo quise entrar por segunda vez al link que dejaste sirdarckcat y me aparece el mensaje que le aparecia a averno.... osea la primera vez lo visualize bien pero despues ya no...

Saludos


Título: Re: FQL Injection (?)
Publicado por: sirdarckcat en 16 Marzo 2009, 00:16 am
Esto sirve para ver personas con su perfil privado.

Los albums tienen permisos extra, por lo que pueden ver fotos de personas con su perfil privado, PEEEERO no pueden ver fotos de albums privados.

Saludos!!


Título: Re: FQL Injection (?)
Publicado por: sirdarckcat en 16 Marzo 2009, 00:18 am
A mi si me funciona probe varias veces y me devuelve arrays con los links de los albums pero otras veces me devulve <empty string> (uso facebook php client como response format)o por ejemplo quise entrar por segunda vez al link que dejaste sirdarckcat y me aparece el mensaje que le aparecia a averno.... osea la primera vez lo visualize bien pero despues ya no...

Saludos
Respuesta:
Ahhh ya vi su error XDDD

Estaban poniendo &amp; en el link jajaja.. deben cambiar &amp; por &, porque XML convierte chars como & a su entidad en HTML.

Saludos!!


Título: Re: FQL Injection (?)
Publicado por: toxeek en 16 Marzo 2009, 00:19 am
Que tal.

Exacto, si sus albumes son privados ( tienen permisos extra, me lo acaba de decir mi novia /* que usa facebook mogollon */ y sdc :__))  no podremos ver nada.


Saludos.


Título: Re: FQL Injection (?)
Publicado por: Littlehorse en 16 Marzo 2009, 00:20 am
Claro, es eso entonces, entonces solo se podran ver la foto del perfil y poco mas. Igual voy a seguir probando algo mas tiene que haber, aunque ahora Tools me anda para atras :S ni siquiera carga XD


Título: Re: FQL Injection (?)
Publicado por: N1K0 en 16 Marzo 2009, 00:23 am
A mi si me funciona probe varias veces y me devuelve arrays con los links de los albums pero otras veces me devulve <empty string> (uso facebook php client como response format)o por ejemplo quise entrar por segunda vez al link que dejaste sirdarckcat y me aparece el mensaje que le aparecia a averno.... osea la primera vez lo visualize bien pero despues ya no...

Saludos
Respuesta:
Ahhh ya vi su error XDDD

Estaban poniendo &amp; en el link jajaja.. deben cambiar &amp; por &, porque XML convierte chars como & a su entidad en HTML.

Saludos!!
me referia a este link http://www.facebook.com/album.php?aid=63080&id=532437297
ingrese un vez y lo visualize pero luego me aparece :

Citar
Este contenido no está disponible en estos momentos

La página que has solicitado no puede mostrarse en estos momentos. Puede que no esté disponible temporalmente, el enlace puede haber expirado o puede que no tengas permiso para visualizarla.
Saludos


Título: Re: FQL Injection (?)
Publicado por: sirdarckcat en 16 Marzo 2009, 00:26 am
Ahh disculpa, esque estaba haciendo pruebas con lo de privacidad.

Saludos!!


Título: Re: FQL Injection (?)
Publicado por: Littlehorse en 16 Marzo 2009, 00:30 am
Pues si, anda, seguro cuando tira empty es porque o no hay albums o estan todos con los permisos en privado.


Título: Re: FQL Injection (?)
Publicado por: N1K0 en 16 Marzo 2009, 00:33 am
Pues si, anda, seguro cuando tira empty es porque o no hay albums o estan todos con los permisos en privado.
Eso es lo que pensaba yo pero probe con el ejemplo de sdc y me funciono y obtube la url del album con una foto luego lo intente de nuevo y me arrojaba empty por eso es q no lo entiendo...

Edit ...
estaba probando un par de cosas con unas tablas y me aparecio esto en la pagina
Citar
¡Estás aproximándote al límite de la consola de test de API!

¡Frena o podrías golpear un bloque!
a que se refieren con golpear un bloque?


Título: Re: FQL Injection (?)
Publicado por: Littlehorse en 16 Marzo 2009, 00:48 am
Citar
¡Estás aproximándote al límite de la consola de test de API!

¡Frena o podrías golpear un bloque!


JAJAJJAJJAJJAJAJ
---------------------------

Si hablas del ejemplo del SDC te dijo que ahi estuvo toqueteando la privacidad que capaz fue por eso. Yo en cambio probe con otros e igual Empty String, casi seguro que es por lo de los permisos porque acabo de comprobar que fotos si tiene, y tambien comprobe con una cuenta que no tenia y lo mismo asi que, las dos son causa del empty string. Pero probando en cuentas aleatorias funciona perfecto y basta con ir cambiando el aid y ya.


Título: Re: FQL Injection (?)
Publicado por: toxeek en 16 Marzo 2009, 00:52 am
Que tal.

El "Bug" no es tal bug.
Solo podremos ver albumes los cuales la gente que lo/s creo, les hayan puesto permisos flexibles ( que otros que no sean amigo lo/s pueda/n ver ).

Mi novia ha tenido la amabilidad de escucharme ( no quiere saber nada sobre informatica, y menos viniendo de mi! ) y de crear delante mio un album en Facebook. Resulta que en dicho proceso, es al principio de la creacion cuando Facebook te pregunta quien queremos que vea dicho album.

Por ello, no es que se cree el album y haya que retocar despues los permisos ante un posible permiso flexible por defecto, no. Facebook te lo pregunta en un formulario a la hora de crearlo, y justo al principio.
Por ello podremos ver los albumes los cuales se crearon con "toda" consciencia de los permisos por parte de la persona creadora del album.

Si el album tiene permisos solo para amigos o privado (?), no podremos verlos. Si la persona no tiene albumes, nos saldra el mismo error.

Resumiendo no es un bug, es solo una manera de aprovechar la API y el fql para facilitar la busqueda de albumes abiertos.
Cabe recalcar que los filtros para los permisos en los albumes son muy minuciosos, y me ha sorprendido cuan agudos son.

Suerte.

  /**** MODIFIKO ****/
Bueno, no se nos pregunta por el filtrado JUSTO al principio, pero si en plena creacion.


Título: Re: FQL Injection (?)
Publicado por: sirdarckcat en 16 Marzo 2009, 01:06 am
pero nadie ha dicho que esto es un bug.. es una vulnerabilidad, que es diferente xD


Título: Re: FQL Injection (?)
Publicado por: toxeek en 16 Marzo 2009, 01:07 am

Que tal sdc?!

Bueeeeeeeeeenooo.. xD!!

Pero yo tampoco lo veo una vulnerabilidad!!

Saludos.


Título: Re: FQL Injection (?)
Publicado por: Littlehorse en 16 Marzo 2009, 01:13 am
Que no es un fallo? o sea es simple, tu no tienes la opcion de ver los albums de las personas si no lo tienes agregado como amigos SALVO que el perfil sea publico y que las fotos tambien lo sean. Ahora, si el perfil NO es publico (o sea aparece en gris en vez de aparecer en azul para clickearlo) no hay opcion en ninguna parte para ver sus fotos, o sea que es un fallo esta claro XDD porque yo ahora mismo estoy viendo fotos de famosas en mi pais y te aseguro que no todas deberian ser visibles. ;D


Título: Re: FQL Injection (?)
Publicado por: sirdarckcat en 16 Marzo 2009, 01:24 am
La vulnerabilidad es que Facebook por el diseño de su sitio, hace que las galerias publicas no sean visibles a los usuarios regulares. Lo que da la sensacion de que tener el perfil privado es suficiente.

Esto seria "casi" verdad, si no existieran estos metodos de obtencion del aid (porque si no existieran los tendrias que "bruteforcear"). Esta inconsistencia en su modelo, representa una amenaza a la privacidad de los usuarios, lo cual es un riesgo, y por consiguiente, es una vulnerabilidad. Porque explota el diseño de la aplicacion, afectando la confidencialidad del usuario.

Saludos!!


Título: Re: FQL Injection (?)
Publicado por: Tryptophan en 16 Marzo 2009, 01:40 am

Esta inconsistencia en su modelo, representa una amenaza a la privacidad de los usuarios, lo cual es un riesgo, y por consiguiente, es una vulnerabilidad. Porque explota el diseño de la aplicacion, afectando la confidencialidad del usuario.


Creo q mas claro imposible...Vos definis esos albumes para q tengan un determinado "scope" de usuarios y por esta vulnerabilidad, bien dicho por SDC, hace q el "scope" sea mas abarcativo q lo supuesto...


Título: Re: FQL Injection (?)
Publicado por: Novlucker en 16 Marzo 2009, 02:16 am
AAAAAAA, claro, entones era por eso que en el perfil de un amigo aparecia como empty, entonces queda en que se pueden ver todas las imagenes de perfiles, siempre y cuando el album no requiera permisos extra  :P

Saludos


Título: Re: FQL Injection (?)
Publicado por: Littlehorse en 16 Marzo 2009, 02:25 am
No probe pero en teoria

"Mis redes y amigos": Deberia funcionar si perteneces a la misma red

"Amigos de mis amigos": Pues eso deberia funcionar si eres amigo de alguien que tenga.

Y los problematicos son solo amigos y personalizar


Título: Re: FQL Injection (?)
Publicado por: N1K0 en 16 Marzo 2009, 02:35 am
AAAAAAA, claro, entones era por eso que en el perfil de un amigo aparecia como empty, entonces queda en que se pueden ver todas las imagenes de perfiles, siempre y cuando el album no requiera permisos extra  :P

Saludos
se, por ejemplo un album creado aplicando atributos como solo visible para amigos
alque no se puede acceder aun sabiendo su aid seria http://www.facebook.com/album.php?aid=2001791&id=1546388293

igualmente dentro de la tabla album hay una columna perteneciente a los atributos del album que se llama 'visible' ej:
Código
  1. SELECT link,visible FROM album WHERE owner=1546388293
para filtrar los resultados y obtener los albums sin atributo alguno osea accesible para todos seria
Código
  1. SELECT link FROM album WHERE owner=1546388293 AND visible='everyone'

bah eso pienso yo nose ...
no sigo probando xq me bloquaron las dos cuentas  :¬¬

Saludos


Título: Re: FQL Injection (?)
Publicado por: Littlehorse en 16 Marzo 2009, 02:43 am
en serio te las bloquearon? yo probe mil veces y no me tiro ningun bloqueo XD


Título: Re: FQL Injection (?)
Publicado por: N1K0 en 16 Marzo 2009, 02:55 am
No me bloquearon la cuenta entera pero me bloquearon el servicio de FQL osea quiero entrar en http://developers.facebook.com/tools.php y me aparece este cartel...
(http://img12.imageshack.us/img12/6467/facebookbloked.th.jpg) (http://img12.imageshack.us/my.php?image=facebookbloked.jpg)


Título: Re: FQL Injection (?)
Publicado por: sirdarckcat en 16 Marzo 2009, 03:05 am
Hiciste demasiadas consultas a la consola de facebook.. te las desbloquean en 24 horas o algo así.


Título: Re: FQL Injection (?)
Publicado por: EvilGoblin en 16 Marzo 2009, 04:26 am
Se supone q en facebook las fotos tuyas las podes ver vos, tus amigos y los amigos de tus amigos como maximo

y no cualquiera que quiera.. para eso tendria q tener el link con el id del album (cosa q se lo tendrias q pasar vos)


Título: Re: FQL Injection (?)
Publicado por: Littlehorse en 16 Marzo 2009, 15:34 pm
No, por mas que le pases el link si los permisos no estan puestos en todos no va a poder ver el album o en su defecto debera cumplir los requisitos de los otros permisos (ser amigo de sus amigos etc)


Título: Re: FQL Injection (?)
Publicado por: EvilGoblin en 21 Marzo 2009, 23:40 pm
No, por mas que le pases el link si los permisos no estan puestos en todos no va a poder ver el album o en su defecto debera cumplir los requisitos de los otros permisos (ser amigo de sus amigos etc)

No a lo que me refiero cuando creas nu album abajo aparece un "pasa este link a gente que no este en facebook para que pueda ver este album"


Título: Re: FQL Injection (?)
Publicado por: Mance en 1 Abril 2009, 10:10 am
¿Alguno ha continuado con esto? :)

Estoy intentándolo y no me funciona la API... :S...



Título: Re: FQL Injection (?)
Publicado por: NewLog en 1 Abril 2009, 13:10 pm
Joder, me ha costado la de dios conseguirlo...

Mira mancebo, sólo has de ir a la web de facebook donde se pueden poner los parámetros de la búsqueda en al tabla (o sea, donde poner la consulta).

Ahí, en vez de hacer una consulta XML eliges la opción "FaceBook PHP Client".
Eliges el "photos.getAlbum"
Por último en uid, pones el id del usuario al que le quieres ver las fotos.

Ahí te saldra un montón de información con todos los álbums de la persona en cuestión. Uno de ellos es el link al álbum... Sin más ni menos.


Genial! Muchas gracias por el aporte, no sabéis lo que me ahorra  :D


Título: Re: FQL Injection (?)
Publicado por: Ngeooz en 14 Julio 2013, 03:35 am
Dejo de funcionar  :huh: :-X Alguien sabe si se puede seguir haciendo de otra manera?