Instagram Uygulama Erişim Jetonu – Bunlar aradığınız erişim_tokenleri değil


Geliştirici belgelerinde tanımlandığı şekliyle Facebook Graph API’sinde, çeşitli API uç noktalarında kimlik doğrulaması yapmak için çeşitli erişim belirteçleri vardır.

  • Kullanıcı Erişim Jetonu
    Kullanıcı adına normalde OAuth yoluyla alınan isteklerde bulunmak facebook.com/dialog/oauth
  • Sayfa Erişim Jetonu
    aracılığıyla edinilen sayfa adına talepte bulunun graph.facebook.com/pageID?fields=access_token
  • Müşteri Jetonu
    uygulama düzeyindeki (yönetici değil) uç noktalar için kullanılır, alfasayısal sırrın alınmasıyla elde edilir graph.facebook.com/appID?fields=login_secret ve formda birleştirme appID|login_secret
  • Uygulama Erişim Jetonu
    Uygulama düzeyinde yönetici rolü uç noktaları için kullanılır ve bir uygulamada yönetim sağlar; belirteç normalde şu biçimdedir: appID|[alphanumeric+special characters]

Tokenların farklı sınıflandırmalarına ek olarak, bir token üçüncü taraf bir uygulamadan (örneğin, geliştiriciler.facebook.com aracılığıyla oluşturulan bir uygulama) veya iOS ve Android’deki Facebook/Instagram gibi birinci taraf bir uygulamadan gelebilir.

Instagram için belirli uç noktalara yönetim erişimi vermiş olabilecek birden fazla uygulama erişim jetonunu Instagram için almak mümkündü.


Meta birkaç yıldır üzerinde çalışıyor Engellemek“her iki yönetim mantığının da sunucu tarafında tanımlanmasını ve yerel bir uygulama olarak oluşturulmasını sağlayan bir çerçeve”. Bu çerçeve genellikle Facebook ve Instagram mağazalarında şu şekilde görülebilir: Blok uygulamaları.

Genel kurulum aşağıdaki parametrelere sahiptir: app_id, params Ve versioning_idbir paket ağacında verilen yanıtla birlikte. Yukarıdaki fotoğraflarda incelemeler sayfasında bir app_id ile ilgili com.bloks.www.bk.commerce.ratings_and_reviews.all_reviews. Pakette Blok bileşeni ve eylemleri Base64 kodlu dizeler aracılığıyla yerleştirildi. Base64 dizelerinden birinin kodu çözüldükten sonra aşağıdaki gibi bir bölüm elde edildi:

ispy0_main_f01㙅#$&camera_rollChoose photobk.action.bloks.InflateSyncig.action.navigation.LaunchMediaPickerV2unified_rating_and_review_composerevent_nameerror_messagecomposer_typereferral_surfacead_group_idpage_idproduct_idinvoice_idcharacter_countrating_valuephoto_countprefill_ratingis_editidentity_preferencesurvey_versionseller_ig_idpurchase_sourcepurchase_source_metadatasignatureadd_photo_pressedPRODUCTpdp_all_reviews_screen3537638846322537ig_product_onsite_v090010214936182unknownbk.action.logging.LogEventcatalog_item_uploads124024574287414|Jor32q7Rh50x2LZL1Aw2F4f8bjw_f02_f03ig.action.media.UploadMediaV3COMMERCE_RATINGS_AND_REVIEWS_COMPOSER:is_image_uploading:17841401338810001bk.action.bloks.WriteGlobalConsistencyStorephoto_upload_startcom.bloks.www.bk.commerce.ratings_and_reviews.composer.media_upload.asyncparamsserver_paramsclient_input_paramscontainer_component_idrating_and_review_typeserialized_composer_contextmedia_source_typeis_local_selectedproduct{"rating_and_review_type":"product","merchant_id":90010214936182,"product_id":3537638846322537,"is_modal":false,"referral_surface":"pdp_all_reviews_screen","seeded_star_index":null,"rating_and_review_metadata":null,"extra_logging_info":null,"survey_entry_point":"product_detail_page","root_screen_id":null,"invoice_id":null}LIBRARYopaque_token_handlenext_image_index112982998200005bk.action.bloks.GetVariable2bk.action.string.JsonEncode_f04_f05current-screenbk.action.bloks.AsyncActionWithDataManifest

Dikkat edilmesi gereken bölüm

catalog_item_uploads124024574287414|Jor32q7Rh50x2LZL1Aw2F4f8bjw_f02_f03ig.action.media.UploadMediaV3

Bu değerler şu şekilde kullanılacaktır: ig.action.media.UploadMediaV3 incelemenin bir parçası olarak fotoğraf yükleme isteği olarak yapılan işlem

POST /catalog_item_uploads/D52D5D86-308F-4DA5-B353-46B58BF47BD4 HTTP/2
Host: rupload.facebook.com
Priority: u=2, i
Offset: 0
X-Entity-Type: image/jpeg
X-Entity-Length: 10234
Content-Type: application/octet-stream
X-Ig-Bandwidth-Speed-Kbps: 7623.000
Content-Length: 10234
Authorization: OAuth 124024574287414|Jor32q7Rh50x2LZL1Aw2F4f8bjw

Tanımlanan belirteç Authorization Buradaki başlık bir müşteri jetonu değil, deneyimlerime göre bunu fark etmek için iyi bir gösterge, bir müşteri jetonunun aşağıdaki kalıba sahip olmasıdır [0-9]|[a-z0-9]*. Yani bu bir uygulama jetonu. Tahribatsız bir çağrı graph.facebook.com/app/roles Yoğun bir şekilde test etmeye başlarsam Instagram’a ne olacağını bilmediğim için token kullanıldı. Burada yönetici veya geliştirici erişimine sahip yaklaşık 25 Facebook kullanıcı kimliği listeleniyor; daha fazla sayfalama isteğini kontrol etmedim veya profillerin hiçbirine göz atmadım. Bazı Facebook kimliklerinin kısalığına bakınca bunların Meta çalışanları olduğu bana mantıklı geldi.

Bu noktada bir rapor gönderdim ve Whitehat Workplace’teki bir çalışana ping atarak konuya dikkat çektim ve etki yaratmak için izin istedim. Konsept kanıtı yeterliydi, artık jetona dokunmamam talimatı verildi. Herhangi bir varyantı ele aldığımdan emin olmak için, GraphQL’de bir sonraki hatayı, buna benzer olası blokları gidermek için kullandım. com.bloks.www.bk.commerce.ratings_and_reviews.composer ve ek bir uygulama jetonu buldum. Ancak Meta bana bu uygulamayı da kontrol ettiklerini söyledi. Jetonların gömülü olduğu tüm uç noktalar birkaç saat içinde kaldırıldı.

Darbe (Meta tarafından tanımlandığı gibi)

Kötü niyetli bir kişinin birinci taraf uygulama IG erişim belirtecini almasına olanak verebilecek bir uç nokta sorunu belirlediniz. Daha fazla etkiyi önleyecek korumalarımız olsa da, raporunuz bizi savunmamızı güçlendirmeye ve kod tabanımızda gelecekte benzer sorunları önlemek için değişiklikler yapmaya yönlendirdi. Bu hatayı düzelttik ve herhangi bir kötüye kullanım kanıtı görmedik.

Zaman çizelgesi
24 Şubat 2022 @ 01:10 – Rapor gönderildi
24 Şubat 2022 @ 01:11 – İşyeri Üzerinden Meta Güvenliğine Ping Atıldı
24 Şubat 2022 @ 02:56 – Meta tarafından önceliklendirilen rapor
24 Şubat 2022 @ 05:20 – Meta tarafından düzeltme onayı
19 Mayıs 2022 – Meta tarafından verilen 30.000 ABD Doları Ödül,
6.000 $ Platin lig bonusu
2.250$ Zaman gecikmesi bonusu
50$ BountyConEdu bonusu

Meta’ya teşekkürler ve nöbetçi çalışana özel teşekkürler.

Referanslar:
https://developers.facebook.com/docs/facebook-login/guides/access-tokens
https://techcrunch.com/2021/03/10/facebook-targets-emerging-markets-with-instagram-lite-a-new-android-app-that-takes-up-just-2mb-in-170- ülkeler/



Source link