بازی کوییز آو کینگز از پروتکول MQTT برای ارسال و دریافت رویدادها و چت های داخل بازی استفاده میکنه. اما هیچ احراز هویتی برای این پروتکول در نظر گرفته نشده و هر شخصی میتونه با داشتن نرم افزار MQTT.fx به تمامی اطلاعاتی که رد و بدل میشند دسترسی پیدا کنه.
مشخصات اتصال به سرور MQTT کوییز آو کینگز به این صورت هست:
Broker Address: tsetse.palang.co Broker Port: 64529 ClientId: <anything> Username: <anything>
برای شنود مکالمات بازیکنان باید آیدی بازیکن مورد نظر رو داشته باشید که این آیدی از یک شروع میشه تا آخرین کاربر ثبت نام کننده در کوییز، که بالای 15 میلیون هست.
با داشتن آیدی بازیکن و الحاق اون به رشته /player/ میتونید از رویدادها و چت های شخصی بازیکن مورد نظر مطلع شید. برای مثال، جهت شنود بازیکن با کد 1000 به تاپیک زیر متصل میشیم:
/player/1000
چت های شخصی بدون کدگذاری و به صورت JSON به فرمت زیر برای کاربر فرستاده میشه:
{"recipient":1000,"type":101,"message":{"text":"test"},"timestamp":1586483046,"content":"test","sender":1001}
حالا برای شنود چت های شخصی 15 میلیون کاربر کوییز آو کینگز فقط کافیه با یک زبان برنامه نویسی و یک حلقه تکرار از 1 تا 15 میلیون به کانال های تک تک کاربرات متصل شید و پیغام ها رو در دیتابیس ذخیره کنید. البته نیاز به یک سرور قدرتمند برای این تعداد کانال دارید. همچنین تعداد کاربر فعال کوییز باتوجه به بررسی های اخیر زیر 1 میلیون کاربر هست، اما تعداد کاربران ثبت نامی بالای 600 میلیون هست که در طول چندین سال هر فردی چندتا اکانت بازی کرده. امکان فیک بودن تعدادی از اکانت ها هم وجود داره.
همچنین کوییز آو کینگز مشکلات بسیار دیگه ای هم داره من جمله مسدود سازی کاربران از روی اطلاع رسانی کانال های تلگرامی و نداشتن سیستم تشخیص تقلب درون بازی برای بررسی بازیکنان متقلب، و همچنین استفاده از تپسل و چارت بوست برای تبلیغات و بررسی رفتار کاربر که باعث سنگین شدن اپلیکیشن شده.
مشکلات وب سرویس هم بخش دیگری از فاجعه در این اپلیکیشن هست که در این نوشته نمیگنجه.