أتمتة Instagram

المحتوى

  • 1. التفويض





    • 1.1. تحليل





    • 1.2 مشكلة





    • 1.3 أول ثقب أمني





    • 1.4. حل المشكلة والثغرة الأمنية الثانية





  • 2. جمع البيانات





  • 3. النتيجة





في العمل ، صادفت مهمة مثيرة للاهتمام  تتمثل في أتمتة Instagram ، وهي أنه كان من الضروري فقط إجراء رسم. هناك خدمات كافية لتنظيم هذا المشروع ، بل إن هناك خدمات مجانية. ولكن كانت هناك شروط إضافية (قراءة مميزة) ، إلى جانب ذلك ، أردت حقًا أن أرى بنفسي ما كان بداخل Instagram الشهير وربما اكتسب خبرة في بناء واجهة برمجة التطبيقات.





بادئ ذي بدء ، ذهبت لأرى ما يقوله الإنترنت. قراءة الأرصفة الرسمية على Instagram API أوضحت أن المالكين لا يريدون منح حق الوصول إلى أتمتة غير محدودة ، يمكنك أتمتة العمل بحسابك في الإصدار الأساسي ، لكن هذا لم يتناسب مع مهمتي ، وتطلب إصدار "الأعمال" من واجهة برمجة التطبيقات التحقق من الشركة ، وهو أمر طبيعي انها لا ناسبني. (ربما تغير شيء ما بالفعل ...)





ثم ذهبت لأرى ما يقوله الإنترنت حول العمل مع API على موقع Instagram على الويب. كل شيء كان ورديًا ولا يبشر بالخير بالنسبة للمشاكل. حتى أن هناك مشروعات php على جيثب توفر واجهات برمجة التطبيقات للأتمتة حتى النشر. تحدثت مقالات عن حبري عن سهولة الأتمتة. كانت العديد من الينابيع ذات نضارة طبيعية (شهرين أو حتى أسابيع). ومع ذلك …





تفويض

(fiddler + waterfox) instagram . . .





, .





طلب في وحدة تحكم Firefox سبب وجود مشكلة في Access-Control-Allow-Origin لا أعرف
Firefox, Access-Control-Allow-Origin

- POST https://www.instagram.com/accounts/login/ajax/ .  enc_password -  ,  : ( , ) :





  •  (PWDINSTAGRAMBROWSER)





  •  (10)





  •  (unixtime 1591030811)









 unixtime , .





, , . github nodejs. , .





    . , instagram .  ( )    , . .





,   ,     js.   js ( )  …  ( ),   ,   .





  instagram php,     js.  ( xhr , fiddler)  php . -     .





… . 7 - ,   - ( , ip),   ).





nodejs  puppeteer  . :)





,   ,  ( )   . ,   ( )  . -   . , ,    , :)





,  ( ):





php node.js , node.js , , , .









.   . html :





لا يعد عرض استجابة html من خلال المستعرض أمرًا مريحًا للغاية ، يمكنك فقط نسخه ولصقه في محرر مألوف والنظر في ما تحتاجه هناك
html ,





:)





 . . Instagram API graphql (- rust-full ). .





:





  • query_hash - :





    •  - d5d763b1e2acf209d62d22d184488e57





    •  - bc3296d1ce80a24b1b6e40b1e72903f5





    •  - c76146de99bb02f6415203be841dd25a





    •  - ff260833edf142911047af6024eb634a





  • variables - json (urlencode ), , , ,    :





    • first -  ( 50 50)





    • after -  ffirst. fafter  , ,  ( null)





:





نعم ، يلزم الاستخدام ، وإلا فسيتم تقييد الوصول عن طريق هذا الطلب مع الوصول المتكرر (حتى إذا حاولت استخدامه كمستخدم عادي عبر إصدار الويب).  هذا ينطبق بشكل خاص على كميات كبيرة من البيانات.  على سبيل المثال ، لتجميع ~ 300 إعجاب و ~ 1000 تعليق ، يعد هذا الإيقاف المؤقت أمرًا طبيعيًا تمامًا ، ولكن أثناء تجميع ~ 5000 تعليق ، تم حظر حسابي المزيف أكثر من مرة ، ولهذا السبب اضطررت إلى زيادة فترة التوقف المؤقت بين الطلبات إلى 3-5 ثوانٍ.  ثم في بعض الحالات (يبدو أن كل شيء يعتمد على النجوم) ، أصدر Instagram حظرًا لهذا الطلب.
, usleep , ( ). . ~300 ~1000 , , ~5000 , - 3-5 . ( ), .

  API  20 .





 أشعر بخيبة أمل من جودة  واجهة برمجة تطبيقات instagram في إصدار الويب من الموقع ، ولم أكن أعتقد أنها ستكون متواضعة جدًا ، ويبدو أن كل شيء ملتوي إلى أقصى حد عند إنشاء البيانات للحصول على إذن  ، ولكن بعد ذلك يتم خفض كل شيء وتشكل فجوة أمنية كبيرة - لقد  سرقت ملفات تعريف الارتباط ذات الرؤوس وحصلت على حق الوصول .





جعلني Instagram أتعرق وأواجه مشاعر مختلفة من استخدام واجهة برمجة التطبيقات ، ولكن تم تحقيق الهدف بالكامل. المؤلف: فيتالي بوتورلين








All Articles