Jump to content

Cómo pirateé Facebook OAuth para obtener un permiso completo en cualquier cuenta de Facebook


dEEpEst
 Share

Recommended Posts

Cómo pirateé Facebook OAuth para obtener un permiso completo en cualquier cuenta de Facebook

Para que este exploit funcione, la víctima solo necesita visitar una página web, 
así que OAuth es utilizado por Facebook para comunicarse entre usuarios de aplicaciones y Facebook. Usualmente los usuarios deben permitir / aceptar la solicitud para acceder a su cuenta antes de que la comunicación pueda comenzar. 

Cualquier aplicación de Facebook puede solicitar diferentes permisos. 

Por ejemplo: 

Diamond Dash, Texas Holdem Poker solo tiene permiso para obtener información básica y publicar en el muro del usuario 

. Encontré una forma de obtener permisos completos (leer en la bandeja de entrada, en la bandeja de salida, administrar páginas, administrar anuncios, leer fotos privadas, videos, etc.) sobre la cuenta de la víctima incluso sin ninguna aplicación instalada en la cuenta de la víctima,
Otra ventaja de la falla que encontré es que no existe una "fecha de caducidad" del Token como lo habría en cualquier otro uso de la aplicación. En mi ataque el token nunca caduca a menos que la víctima cambie su contraseña . 

Entonces, la URL del OAuth el diálogo se ve así: 

https: //www.facebook...ERMISSION_NAMES


Cada aplicación en Facebook tiene diferentes id_aplicaciones, por ejemplo, 'Diamante Dash' será app_id = 2, y 'Texas Holdem Poker' será app_id = 3 

El siguiente, El parámetro redirect_uri (next =, redirect_uri =) solo acepta el dominio de la aplicación propietaria. 
Por ejemplo, app_id = 2389801228 pertenece a la aplicación 'Texas Holdem Poker', por lo que el 'siguiente' parámetro permitirá solo el dominio zynga.com (es decir, next = http: //zynga.com),
Si el dominio es diferente (nirgoldshlager.com) en el parámetro 'siguiente', 'redirect_uri', Facebook bloqueará esta acción, 

Facebook realizará una coincidencia entre su app_id y su próximo parámetro, Facebook también envía el token de acceso a través de la solicitud GET al propietario aplicación después de que el usuario lo permitió, 
ahora que sabemos cómo funciona Facebook OAuth, vamos a hablar sobre mis hallazgos, 
comencé a pensar en mis opciones, ¿qué pasa si puedo redirigir la solicitud OAuth de la aplicación a una URL 'SIGUIENTE' diferente? Primero intenté cambiar el parámetro 'siguiente' por un dominio diferente y ellos bloquearon mi acción. 
Luego intenté cambiar el siguiente parámetro al dominio facebook.com, y me bloquearon nuevamente con un mensaje de error general,


Descubrí que si usa un subdominio, por ejemplo: xxx.facebook.com, Facebook permitirá esta acción, 
pero si intenta acceder a carpetas / archivos en x.facebook.com (x.facebook.com/xx/x .php), Facebook te bloquea, 
entonces noto que facebook.com usa un signo Hash y! allí URL (x.facebook.com/#!/xxxx), 
traté de realizar esta acción en el siguiente parámetro (next = x.facebook.com /% 23! /), ¡y Facebook me bloqueó nuevamente !, 
entonces intentado poner "algo" entre el signo de hash y el! (% 23x!), Y Facebook no bloqueó esta acción, 
Parece que hay una protección Reg-ex, ¡Genial !, ¡ 

Pero espera !, 

si ponemos algo como esto ( https://beta.facebook.com/# xxx! / messages /), la acción no se tratará en ¡es lo mismo que #! en nuestro cliente, y no nos redirigirá a la pantalla del mensaje, 
pensé que tenía que encontrar una manera de evitarlo, ¡así que comencé a confundir personajes entre ellos! y # para que pueda hacer que cualquier navegador (IE, CHROME, Safari, Firefox ...) lo trate como # !, ¡ 

Ahora es el momento de difuminar !, 

Resultado: ¡ 

% 23 ~! (Funciona en todos los navegadores) 
% 23% 09! (Funciona en todos los navegadores) 

¡Genial! Este truco funciona en touch.facebook.com/#%09!/,m.facebook.com/#~!/, o en cualquier otro móvil de Facebook, toque el dominio), 

así que ahora yo ' puedo redirigir a la víctima a cualquier archivo / directorio en cualquier subdominio de Facebook,
Luego creé una aplicación de Facebook que redireccionará a la víctima al sitio web externo para enviar el access_token de la víctima a mi sitio web externo "malicioso". 

Por ejemplo: (Zynga Texas Holdem OAuth Bypass):


https: //www.facebook...onse_type=token '> https: //www.facebook...onse_type=token 


El siguiente parámetro se redirigirá a mi aplicación de Facebook (touch.facebook.com/apps/testestestte), 
y mi aplicación de Facebook redireccionará a files.nirgoldshlager.com domain y guardará a la víctima access_token en un archivo de registro (files.nirgoldshlager.com/log.txt), 

Amazing !, ahora puedo robar tokens de acceso de cualquier aplicación de Facebook, 

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Espera !! 


AQUÍ VIENE LA REAL ACCIÓN: 

para hacer un ataque exitoso, la víctima necesita usar una aplicación de Facebook (Texas Holdem Poker, Diamond
Y estas aplicaciones solo tienen permisos básicos. Siempre podemos cambiar el alcance del permiso de la aplicación y establecer un nuevo permiso, pero este método no es poderoso, ya que la víctima debe aceptar los nuevos permisos de la aplicación (https: //www.facebook...s read_requests), 


¡quería algo más poderoso !, 

algo que me daría todos los permisos (leer en la bandeja de entrada, en la bandeja de salida, administrar páginas, administrar anuncios, acceder a fotos privadas, videos, etc.) en la cuenta de la víctima sin ninguna aplicación instalada en la víctima y hacer que Facebook haga el Goldshake , 

entonces comencé a pensar 
¿Cómo se puede hacer esto ?, 
¿Qué pasa si voy a usar un app_id diferente? app_id de Facebook Messenger por ejemplo, 
¿necesita el usuario aceptar la aplicación Facebook Messenger en su cuenta de Facebook ?, 

la respuesta es no, 
hay aplicaciones integradas en Facebook que los usuarios nunca deben aceptar, y esta aplicación tiene un control total sobre su cuenta,
También encontré que este access_token nunca expiró en Facebook Messenger, 


solo después de que la víctima cambiara su contraseña, entonces el access_token caducará, pero ¿por qué demonios el usuario cambiaría su contraseña ?, 

PoC (funciona en todos los navegadores, no necesita instalarse) aplicación en la cuenta de la víctima): 


https: //www.facebook...onse_type=token


Seguridad de Facebook Corregido este error 

Descripción completa del permiso para la aplicación de mensajería de Facebook:

ads_management create_event create_note email export_stream manage_friendlists manage_groups manage_notifications manage_pages offline_access photo_upload publish_actions publish_checkins publish_stream read_friendlists read_insights read_mailbox read_page_mailboxes read_requests read_stream rsvp_event share_item sms status_update video_upload xmpp_login 

Funciona también en cuentas de verificación de 2 pasos, cuando se trata de access_token, la verificación de 2 pasos fallará. 

¿¿¿Y??? 

Video Tutorial

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

Chat Room

Chat Room

Chatroom Rules

No support in chat, open a thread.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.