مشکلات امنیتی کلوب.کام

ویرایش شده در تاریخ ۲۴ شهریور ۱۳۸۷، ساعت ۱۲:۰۲

خوشبختانه این مشکل توسط طراحان کلوب اصلاح شد. سرعت عمل این تیم در برطرف این مشکل جای تقدیر دارد.
در صورتی که کنجکاو هستید می توانید فیلم استفاده از این باگ قبل از اصلاح شدن را در انتهای این بلاگ در قسمت این باگ در عمل ببینید.
آن دسته از دوستانی که علاقه مند به دانستن نحوه ی اصلاح این مشکل توسط طراحان کلوب هستند می توانند به بخش این باگ توسط طراحان کلوب اصلاح شد رجوع کنند.

معرفی کلوب.کام، بزرگ ترین جامعه ی مجازی ایرانی

شاید خیلی از شما با سایت کلوب.کام آشنا باشید یا توی اون عضو باشید.
این وبسایت یکی از معروف ترین وبسایت های ایرانی هست و در رنکینگ Alexa بعد از بلاگفا دومین وبسایت ایرانی هست.
در این وبسایت تقریباً تمامی پارامتر های یک سایت وب ۲ خوب رعایت شده و من واقعاً افتخار می کنم که همچین سایتی توسط یک گروه ایرانی نوشته شده.
چند روز پیش ساعت ۳ نصف شب یکی از دوستان از طراحی حرفه ای این سایت تعریف می کرد و من هم کنجکاو شدم تا عضو این جامعه ی مجازی بشم.

ورود به کلوب

بعد از نیم ساعت گشتن توی کلوب متوجه ساختار خیلی خوب این سایت با توجه به ترافیک بالاش شدم.
جداً ساپورت یک سایت با ۲ هزار کاربر در یک لحظه کار آسونی نیست. اونم یک سایت که بخاطر سیستم چتش هر ۲۰ ثانیه یک Request به سرور میده!

پنجره ی گفتگوی زنده
Question level 1 ببخشید منظورتون از Request فرستادن به سرور چیه؟ برای چی این کار رو می کنه؟
Answer ” سوال خوبیه! اگر با سیستم کلوب کار کرده باشید متوجه می شید که وقتی یک شخص دکمه ی شروع گفتگوی زنده با شمارو می زنه یک پنجره بالا سمت چپ باز می شه و به شما این موضوع رو اطلاع میده.
در حال حاضر متود رایج برای ارتباط کلاینت یا مرورگر شما و سرور سایت یک طرفه هست. به این صورت که مرورگر می تونه به سرور بگه که من یک سری اطلاعات جدید می خوام. حالا اگر بخوایم اطلاعاتی از سرور به کلاینت داده بشه و زمان اون مشخص نباشه مرورگر شما باید هر چند مدت پیغام یا Request ای به سرور بفرسته تا ببینه آیا اطلاعات جدیدی موجود هست یا خیر. سایت کلوب هم هر ۲۰ ثانیه پیغامی به سرور میفرسته تا ببینه آیا کاربر پیغام زنده ای داره یا نه! در صورتی که پیغامی موجود بود پنجره ای ظاهر می شه و به شما این موضوع رو خبر میده.البته Comet یه راه حل جدید در برنامه های وب هست که این مشکل رو می تونه حل کنه. “
Question level 1 من هیچی از این مطالبی که گفتید نفهمیدم!
Answer ” خوب خیلی مهم نیست البته اگر اجازه بدید بقیه ی ماجرا رو تعریف کنم. “

کلوب به عنوان یک بانک خیلی مفید برای کارهای تحقیقاتی

با کمی بیشتر گشتن متوجه شدم این سایت چه منبع خوبی برای جمع آوری یک بانک اطلاعاتی جهت کار های تحقیقاتی هست و از اطلاعات افراد و ارتباطاتشون و همینطور عکس هاشون استفاده ی خیلی مفیدی جهت آموزش نرم افزارهای با قابلیت یادگیری می شه کرد.

Question level 3 میشه لطف کنید در این مورد بیشتر توضیح بدید؟
Answer ” البته! در حال حاضر بحث یادگیری در کامپیوتر موضوع خیلی داغی هست. شاید برای خیلی از شما عجیب باشه، اما کامپیوتر هم قابلیت یادگیری داره. مثلا میشه با ارائه ی تعداد زیادی مثال بهش یاد داد در یک عکس صورت ها رو تشخیص بده. دقیقاً مثل آدم که با دیدن تعداد زیادی صورت متوجه شده شکل کلی صورت به چه شکل هست. کامپیوتر حتی می تونه چهره ها رو تشخیص بده! یعنی مثلا بعد از ارائه ی چندین عکس از یک فرد و آموزش برنامه، از برنامه انتظار داشت بین چند صورت اون شخص رو تشخیص بده.
در حال حاضر حتی نرم افزار هایی ساخته شدن که سن افراد رو از روی تصویر صورتشون حدس می زنن! اما برای آموزش این نرم افزار ها که معمولا با شبکه های عصبی کار می کنند نیاز به تعداد خیلی زیادی تصویر صورت به همراه مشخصات هست. کلوب دقیقاً تمامی پارامتر های لازم رو داره! هر پروفایل یک عکس داره به همراه مشخصاتی نظیر سن، جنسیت، حتی قد!
یعنی مثلا می شه برنامه ای ساخت که با استفاده از این تصاویر آموزش ببینه و با توجه به عکس صورت تشخیص بده اون شخص پسر هست یا دختر! “
Question level 3 خدای من! این خیلی جالبه! اما یک سوال دیگه! تمام عکس های داخل کلوب صورت نیستند. خیلی از افراد عکس طبیعت یا یک نماد رو بجای تصویر صورتشون قرار دادن، این موارد مشکلی ایجاد نمی کنه؟
Answer ” سوال خیلی به جایی بود! حق با شماست! اما خوشبختانه در حال حاضر برنامه ها و ابزار خوبی جهت تشخیص اینکه یک عکس صورت هست یا نه وجود داره که با دقت خوبی این کار رو انجام میده. اتفاقاً به خاطر وجود این ناخالصی میشه با این داده ها به صورت Supervised این ابزار رو تست کرد! این ابزار معمولا یک Threshold دارند که هر چقدر مقدارش کمتر باشه سخت گیرانه تر یک عکس رو به عنوان صورت انتخاب می کنه ولی البته ممکن هست عکس هایی که صورت هستند رو به عنوان غیر صورت دسته بندی کنه. اما اگر یک Threshold پایین انتخاب کنیم مطمئن هستیم اونایی که به عنوان تصویر صورت دسته بندی شدن با احتمال خیلی بالایی تصویر صورت هستند. و بعد روی اون داده ها بقیه ی تحقیقات نظیر تشخیص سن یا جنسیت و … رو انجام بدیم. “

علاوه بر این موارد اطلاعات خیلی مفید دیگه ای هم در سایت کلوب وجود داره که ارتباطات افراد هست! شاید اول این اطلاعات به نظر مفید نیاد و مثلا فکر کنید فقط به درد مچ گرفتن بخوره! اما این طور نیست.

این اطلاعات خیلی ارزش مند هستند.با استفاده از این ارتباط ها و اطلاعات هر یک از پروفایل ها می شه یک گراف تشکیل داد که افراد گره های این گراف باشن و ارتباط ها یال ها رو تشکیل بدن. با استفاده از این اطلاعات میشه خیلی چیز ها رو حدس زد و خیلی چیز ها رو پیش بینی کرد که باز هم از موضوع های داغ این روز ها هستند.
به عنوان مثال سایت Facebook که یکی از بزرگ ترین جوامع مجازی حال حاضر هست برای هر کاربر افرادی که ممکن هست بشناسه اما در لیستش دوستانش نیستند رو حدس می زنه و به اون شخص معرفی می کنه!
یا این روز ها تحقیقات زیادی در ارتباط با Relationship Prediction صورت می گیره و هدف این هست که ابزاری تولید بشن که حدس بزنن آیا ممکن هست دو نفر در آینده ی نزدیک با هم دوست بشن یا خیر. یا مثلاً بهترین افرادی که بدرد دوستی با یک شخص می خورند رو حدس بزنه. برای تمام این تحقیقات یک سری اطلاعات خام لازم هست که جهت آموزش به نرم افزار بدیم تا به عنوان مثال این نرم افزار متوجه بشه افرادی که سنشون ۱۹ سال هست و پسر هستند بیشتر علاقه دارند با افرادی که ۱۷ ساله هستند و دختر هستند دوست بشن! کلوب حتی اطلاعات خیلی کامل تری داره مثل رنگ چشم! یعنی نرم افزار می تونه یاد بگیره معمولا پسر هایی که ۲۰ ساله هستند و موشون بور هست از دختر های با موی سیاه خوششون میاد! این ها واقعا اطلاعات با ارزشی هستند و در آینده ی خیلی نزدیک به ما خیلی می تونن کمک کنن.

حالا دیگه ساعت ۴ شده بود و این سوال پیش اومده بود که چطور این اطلاعات رو جمع آوری می شه کرد؟! البته جواب این سوال معلوم بود.
شاید خیلی از شما نئو (اولین بات خزنده ی یاهو! ۳۶۰) که حدوداً پارسال همین موقع ها ۳۶۰ رو زیرو رو کرد و برای همه کامنت میگذاشت و در کمتر از ۱۰ روز ۱۵۰۰۰ تا کامت داشت یادتون باشه یا حتی شاید به پروفایل خود شما هم کامنت داده باشه.
بله! هدف ساخته شدن اون بات هم همین بود با این تفاوت که یاهو! ۳۶۰ اطلاعات خیلی کمتری نسبت به کلوب داشت و مقدار خیلی خیلی بیشتری اطلاعات غلط داخلش وجود داشت.
همون لحظه بود که من و یکی از دوستام بنام امید علیپور نوشتن این بات رو شروع کردیم و قرار شد بات من تمام افراد رو به لیست دوستانش اضافه کنه و اطلاعات پروفایل ها از جمله عکس، سن، جنسیت، قد و … رو ذخیره کنه و بات امید به تک تک افراد پیغام خصوصی بده.
۱۰ دقیقه نشد که وقتی به سایت کلوب می رفتیم یک صفحه ی خالی میدیدیم! اولین حدسی که زدیم این بود که کلوب IP ما رو به خاطر درخواست زیاد بن کرده! اما خوشبختانه بعد از ۳۰ دقیقه درست شد. بعداً متوجه شدم که کلوب هر روز حدود ساعت ۴ به مدت تقریبا نیم ساعت جواب تمام درخواست ها رو با یک صفحه ی خالی میده. احتمالا توی این مدت در حال آپدیت کردن Cache و Index کردن هست. اگر کسی دلیلش رو می دونه خوشحال می شم بدونم.

Question level 2 خوب معلومه دیگه! اون مدت زمان قطع شدن برقشونه!
Answer ” من واقعاً از این جواب قانع کننده ی شما ممنونم! “

جمع آوری اطلاعات و صیانت از هویت کاربران

بعد از برگشتن کلوب به وضعیت عادی خودش حدود ۳۰ دقیقه بعد یک بات آماده داشتیم که از صفحه ی اول کاربران آنلاین شروع کرد و بعد دوستان اون افراد و بعد هم دوستان دوستان افراد … رو به لیست دوستانش اضافه می کرد و اطلاعات مربوط به هر فرد رو ذخیره می کرد! یعنی دقیقاً همون اطلاعاتی که برای کار تحقیقاتی نیاز هست…

Question level 2 وااااای! یعنی شماره تلفن من هم ذخیره کرده؟
Answer ” شما مگه شماره تلفنتون رو داخل کلوب گذاشتید؟ “
Question level 2 نه!
Answer ” خوب پس معلومه که ذخیره نکرده… این بات که از خودش نمی تونه اطلاعات استخراج کنه! تنها اطلاعاتی که بقیه ی افراد می تونن ببینن رو می تونه ذخیره کنه و اطلاعاتی مثل شماره تلفن شما یا مثلا IP شما و … رو که هیچ کس نمی تونه ببینه این بات هم نمیبینه! “
Question level 3 اما به نظر من این کار اصلاً درست نیست! شاید کسی دلش نخواد اطلاعاتش ذخیره یا فاش بشه!
Answer ” اول از همه کسی که اطلاعاتش رو روی کلوب گذاشته یعنی قبول کرده همه اون اطلاعات رو ببینن! پس هیچ اطلاعاتی فاش نمیشه.اما خوب کلاً با شما موافقم! شاید کسی بخواد در آینده اطلاعاتش رو بر داره یا نخواد یک سری از اطلاعاتش جایی که در دسترسش نیست ذخیره بشن! از اونجایی که من خودم جزو همین دسته از افراد هستم برای این موضوع راه حلی پیدا کردم! اولاً این بات به هیچ وجه اسم، Email یا آیدی یاهو! هیچ پروفایلی رو ذخیره نمی کنه.تنها چیزی که از هر شخص به عنوان یک کد شناسایی ذخیره میشه MD5 شده ی شناسه ی کلوب افراد هست. “
Question level 1 ببخشید! منظورتون از MD5 چیه؟
Answer ” MD5 یه نوع الگوریتم کد کردن یک طرفه هست. مثلاً پسورد افراد در انجمن ها به این صورت ذخیره میشه. یکی از خاصیت های اصلی اون اینه که قابل بازگشت نیست. یعنی مثلا اگر کلمه ی Siavash رو با استفاده از MD5 کد کنیم دیگه از اون رشته ی کد شده نمی تونیم به Siavash برسیم. پس در واقع تمام اطلاعات بدون مشخصات صاحب اونا ذخیره میشن و سعی کردم با این روش مشکل عدم اعتماد افراد رو حل کنم. “
Question level 2 من می تونم اطلاعاتی که این بات از من ذخیره کردرو ببینم؟ میشه برام میل کنیدش؟
Answer ” من همین چند لحظه پیش گفتم که مشخصات افراد بدون هویتشون ذخیره می شن! پس یعنی همچین کاری نمی تونم بکنم! “
Question level 2 آهان! می خواستم مطمئن شم!

آمار و سرعت رشد نئو در کلوب

سرعت رشد نئو در کلوب خیلی بالا نبود و دلیل اصلیش هم محدودیت هایی بود که داخلش گذاشته بودم.
این بات طوری تنظیم شده بود تا تقریبا هر ۵ ثانیه یک درخواست به سرور کلوب بده. دلیلشم وارد نکردن فشار خیلی زیاد به سرور کلوب بوده. البته سرور ها و طراحی کلوب خیلی قوی تر از این هستن که یک یا چند بات بتونه فشار خاصی به اون ها وارد کنه اما برای اطمینان محدودیت هایی روی بات قرار دادم تا مشکلی پیش نیاد.
این هم نمودار تعداد دوستان نئو بر حسب زمان (ساعت) برای ۴۸ ساعت اول فعالیت این بات.

نمودار رشد نئو در 48 ساعت اول

در کل برای ۱۸۹,۰۶۲ نفر درخواست دوستی فرستاده شده و برای ۲۸,۲۲۳ نفر یادداشتی با متن درخواست دوستی فرستاده شده.و در کل اطلاعات ۲۲۵,۲۱۴ نفر استخراج و ذخیره شده.

دسترسی به پروفایل نئو

راستی! اسم این بات رو هم مثل بات های قبلی نئو گذاشتم و پروفایلش رو از اینجا می تونید ببینید.
اگر دوست داشتید می تونید پروفایل نئو در یاهو! ۳۶۰ رو هم اینجا ببینید.

مشکل خیلی کوچک امنیتی در تصویر امنیتی کلوب

تصویر امنیتی سایت کلوب

تا اینجای کار خیلی سخت نبود! چون هیچ مانعی سر راه ساختن یک بات قرار نداشت! اما برای گذاشتن یادداشت یا فرستادن پیغام یا نقاشی یک مشکلی سر راه بود! البته برای ۱۰ دقیقه…
مشکل این بود که برای انجام این فعالیت ها نیاز به وارد کردن یک تصویر امنیتی بود. این تصاویر که به Captcha معروف هستند کارشون جلوگیری از ورود بات ها به بخش هایی که قرار نیست واردش بشن هست.
چون یک بات مثل یک آدم نمی تونه تصاویر رو تشخیص بده. البته توجه داشته باشید که نگفتن نمی تونه، بلکه گفتم به خوبی آدم نمی تونه…خوب اما توی این مورد حتی نیاز به خوندن تصاویر هم نبود! چرا؟
بی شک توی هر سیستمی حتی به قدرت کلوب مشکلات کوچکی هم وجود دارند. یکی از مشکلات این سایت همین بخش بود.
این سیستم به این صورت کار می کنه که هر عکس شامل سه عدد هست و هر مجموعه عدد یک کد مخفی هم داره که داخل یک Input مخفی ذخیره میشه. وقتی که یک یادداشت ثبت میشه، در سرور کلوب چک می شه که آیا کد مخفی متعلق به همون مجموعه اعداد هست یا نه! اگر بود یادداشت ذخیره می شه و در غیر این صورت پیغامی داده می شه که لطفاً کدامنیتی را درست وارد کنید.
خوب حالا مشکل این نوع کنترل چیه؟ خوب مشکل اینه که این راه رو راحت میشه دور زد، به این صورت که کافیه فقط یک بار یک مجموعه عدد و کد مخفی مربوط به اون مجموعه خونده شه و از اون به بعد هر بار همون مجموعرو وارد کنی و کد مخفی هم بصورت دستی همون کد قبلی بفرستی! اینطوری حتی نیاز به پردازش تصویر امنیتی هم نیست!
با این وجود حتی اگر این مشکل هم نبود، به خاطر سادگی ظاهر و کم بودن نویز در تصویر امنیتی کلوب، به راحتی می شد کاری کرد که بات این تصاویر رو بخونه!چون رنگ رقم ها همیشه قرمز هست و سایز اونها هم ثابت هستند و فقط کمی می چرخند و همیشه از هم جدا هستند. پس با یک شبکه ی عصبی خیلی خیلی ساده می شه این ارقام رو خوند.
اگر به این موضوع علاقه مند هستید، پیشنهاد می کنم این آموزش رو که در ارتباط با تشخیص حروف با شبکه های عصبی هست بخونید.
من یک برنامه برای خواندن تصویر امنیتی سایت کلوب نوشتم، هر کدوم از دوستان که سورس این برنامه که به زبان جاوا هست رو خواستن کافیه در نظرات درخواستش کنن تا براشون میل کنم.

در نهایت هم سایفر بات که یک بات پاسخگو هست رو توی یاهو! مسنجر آنلاین کردم و در پروفایل نئو ذکر کردم که افراد می تونن به این آی دی پیغام بدن و باهاش چت کنن…
لازم هست اینو بگم که این بات حدوداً ۴ سال پیش درست شده و برای زمان خودش بات نسبتاً خوبی بود امّا در حال حاضر یک بات پاسخگو می تونه خیلی هوشمند تر از سایفر باشه…

موارد جالب بعد از ساخته شدن بات کلوب

خوب بعد از ساخته شدن این بات و فعال شدنش، مثل بات های قبلی اتفاق ها جالبی افتاد و افراد مختلف نظرات جالبی رو مطرح کردن.
من متأسفانه نتونستم تمام نظر ها و پیغام ها رو بخونم، اما در کل چند مورد برام جالب بود.

اعتماد زیاد کاربران کلوب به یکدیگر

اولین مورد اینکه چطور ۱۳۰۰۰ نفر بدون اینکه کسی رو بشناسن و حتی یک خط با اون صحبت کرده باشن درخواست دوستی اون رو قبول کردن!
نکته ی جالب تر اینکه تعداد خیلی زیادی از این افراد در اولین پیغام خودشون سلام کرده بودن و شماره تلفنشون رو داده بودن. این جو خیلی صمیمانه ی کلوب رو نشون می ده که برام جالب بود چون تو هیچ جامعه ی مجازی دیگه ای به جز SmallWorld همچین چیزی ندیده بودم.

افراد خیلی زیادی هم پیغام می دادن و می گفتن شما چقدر آدم الافی هستید، یا مثلا تو کارو زندگی نداری؟ و خیلی پیغام های دیگه ای که محتواشون همین بود…
یه تعداد هم پیغام در این رابطه بود که من خودم باهات تو یاهو! مسنجر صحبت کردم، چرا الکی میگی روباتی؟ کمبود محبت داری؟ و پیفام هایی مثل این! راستش من هیچ شباهتی بین سایفر که یه بات خیلی خنگ هست با یک آدم نرمال نمی بینم. احتمالاً دوستان می خواستن من رو با این حرفشون که این بات خیلی شبیه آدم برخورد می کنه خوشحال کنن. واقعاً از این دوستان ممنونم!

معرفی نئو در بلاگ کلوب

مورد جالب بعدی اینکه من بعد از اینکه لیست دوستان نئو به ۱۰۰۰۰ نفر رسید یک بلاگ در کلوب با عنوان نئو چیست؟ نوشتم و داخلش بطور کامل توضیح دادم که این پروفایل یک انسان نیست، اما همچنان پیغام هایی با محتوای اینکه شما چقدر بیکار هستید، یا ببخشید من شما رو میشناسم؟ می گرفتم…
جالب اینکه این بلاگ بعد از ۸ ساعت جایگاه اول رو توی داغترین مطالب در ۲۴ ساعت به خودش اختصاص داد و الآن که دو روز هست از نوشته شدنش میگذره جزو ۵ مطلب داغ هفته شده.

پروفایل سایفر در کلوب!

پروفایل سایفر در کلوب

جالب تر از این مورد یک پروفایل با نام سایفر بود که آی دی سایفر رو معرفی کرده بود و قابلیت های اون رو نوشته بود که بعضی هاش رو من خودم هم نمی دونستم! از این دوستمون هم به خاطر معرفی سایفر و قابلیت های جدید این روبات متشکرم… این روبات در ابتدا یک مرد ۴۰ ساله بود و در حال حاضر یک زن ۱۶ ساله ی جدا از همسر می باشد! بلاگی گه جهت معرفی سایفر توسط این کاربر پست شده بود بعد از گذشت مدتی به عنوان داغ ترین مطلب ۲۴ ساعت انتخاب شد!

سایفر در داغ ترین ها

آخرین نکته ی جالبی که به ذهنم می رسه این هست که من نئو رو تعریف کرده بودم تا هر روز تاریخ تولدش رو به همون روز تغییر بده، و جالب تر اینکه هر روز تعداد خیییییلییی زیادی تولد این بات رو تبریک می گفتن و نقاشی های بسیار زیادی هم برای این روبات کشیدن. من واقعاً از این جو صمیمانه ی کلوب خوشم اومده. اینکه افراد چند دقیقه از وقتشون رو صرف خوشحال کردن و تبریک گفتن به کسی می کنن که شاید تا حالا باهاش حرف نزدن قابل تقدیره. اما نکته ی جالب تر اینه که من از خیلی افراد چندین و چند بار پیغام تبریک گرفتم! اما فقط یکی از اون همه پیغام متنش این بود که مگه تو دیروز تولدت نبود؟ برام جالب بود که فقط یک نفر به این موضوع توجه کرده بود…

نقاشی نئو

این هم یکی از نقاشی های قشنگی که برای نئو کشیده شده.

یک مشکل امنیتی کوچک دیگه

همونطوری که بالاتر هم گفتم همه ی سایت ها، حتی سایت های بزرگ مثل MySpace و Yahoo! 360 که جزو بزرگترین جوامع مجازی هستند مشکل های امنیتی می تونن داشته باشن…
نمونش باگ های XSS ای که چند مدت پیش در MySpace کشف شد یا باگ دیگه ای که در Yahoo! 360 باعث هک شدن کلی آی دی یاهو! شد.

Question level 3 ماجرای این باگ ها چی بوده؟ من نشنیدم!
Answer ” خوب اول ماجرای XSS Worm سایت MySpace رو می گم: ماجرا از این قرار بود که یه کاربر با نام Samy راهی پیدا کرد که بتونه یک کد جاوااسکریپت رو روی صفحه ی خودش قرار بده. هر کاربری که به صفحه ی این کاربر سر می زد کد اجرا می شد و علاوه بر اضافه کردن Samy به لیست دوستان اون شخص، این کد رو در صفحه ی اون کاربر هم جایگذاری می کرد! به این ترتیب این کرم به صورت نمایی رشد پیدا کرد به طوری که بعد از گذشت یه مدت کوتاه حدود یک میلیون کاربر به لیست Samy اضافه شدن!
ماجرای باگ یاهو! ۳۶۰ هم این بود که می شد با یک ترفندی یک کد جاوااسکریپت رو در پیغام های خصوصی جا داد، و وقتی کسی به صندوق پیام هاش میرفت این کد جاوااسکریپت صفحه ی صندوق پیام رو به یک صفحه که شبیه صفحه ی لاگین یاهو! طراحی شده بود هدایت می کرد. و هر کس توی اون فرم لاگین می کرد پسوردش عوض می شد و مجدداً توسط اون آیدی پیام آلوده به دوستانش فرستاده می شد! “

خوب خوشبختانه کلوب همچین باگ های بزرگی نداره یا بهتره بگم پیدا کردن همچین باگ هایی توش آسون نیست، و این نشون دهنده ی طراحی خیلی دقیق این وبسایت و قدرت طراحانش هست. اما یک مشکل خیلی کوچیک وجود داره که من همین جا می گم تا انشاالله طراحان سریعاً این مشکل رو درست کنند.
مشکل در سیستم چت هست! و با این مشکل می شه بدون لاگین کردن از طرف شناسه ی کلوبی که پسوردش رو ندارید و برای شما نیست به هر یک از کاربران کلوب پیام زنده بدبد و پیغام کاربران دیگر رو قبل از اینکه بدستشون برسه بخونید!
مثلا من می تونم با شناسه ی کاربری یک کاربر دیگه به دوستم پیام زنده بفرستم، یا گفتگوی زنده ی یکی دیگه از دوستام رو قبل از اینکه بدستش برسه بخونم!
البته ایراد خیلی بزرگی نیست اما فکر کنم باید سریعاً بهش رسیدگی بشه چون ممکنه توی این چت ها مطالبی گفته بشه که کاربر دوست نداشته باشه شخص دیگه ای اونارو بدونه…

معرفی این باگ و طریقه ی استفاده از اون

من به صورت خیلی خلاصه این باگ و نحوه ی استفاده کردن از اون رو توضیح می دم.
جهت فرستادن پیغام به هر کاربر کافیه این خط رو توی آدرس بار مرورگرتون کپی کنید و Enter رو بزنید.

http://chat.cloob.com//Chat/Chat_Manager.php?data={"user":"990###","event":"sendMessage",
"time_str":"s9ecmmgggmzoxg","message":"Salam!"}

به جای ۹۹۰### کافیه کد کاربر مورد نظر رو بزنید. برای پیدا کردن این کد کافیه به صفحه ی کاربر مورد نظر برید و کد HTML اون صفحرو نمایش بدید و در نهایت عبارت زیر رو جستجو کنید:

id="user_

اولین نتیجه ای که خواهید دید باید شبیه خط زیر باشه:

 

مثلا در این مورد ۹۸۱۰۹۶ کد کاربر مورد نظر هست.s9ecmmgggmzoxg شامل کدی مرتبط با فرستنده و تاریخ هست.
شما می تونید بخش پر رنگ رو تغییر بدبد تا از طرف کاربران دیگه پیغام بتونید بدید.اگر به همین شکلی که هست استفاده کنید از طرف کاربری به نام نئو پیغام رو می فرسته! اگر بخواین از طرف فردی ناشناس پیغامتون رو بفرستید کافیه به جای این کد siavash بنویسید!
توجه داشته باشید که اگر از طرف فردی نا شناس بخواین پیغام بفرستید کاربر مقابل فقط وقتی پیغام شما رو دریافت خواهد کرد که پنجره ی گفتگوی زندش باز باشه. (اگر نباشه اولین باری که بازش کنه پیام شما رو دریافت خواهد کرد.)
و آخرین بخشی که ممکنه نیاز بشه تغییرش بدید Salam! هست که می تونید با پیغامی که می خواین عوضش کنید.
خوب تا اینجا می تونید از طرف شخصی که پسوردش رو ندارید، حتی به افرادی که گرفتن گفتگوی زندشون رو محدود کردن پیغام بفرستید!

برای گرفتن پیغام دیگران کافیه این لینک رو در مرورگرتون اجرا کنید:

http://chat.cloob.com//Chat/Chat_Manager.php?data={"user":"990###","event":"readMessage",
"users_status":"","time_str":"s9ecmmgggmzoxg"}

اینجا ۹۹۰### کد شخصی هست که می خواین پیغامش رو بگیرین و s9ecmmgggmzoxg هم کد رمز شده ی خود شماست!
با اجرای این لینک مرورگر شما منتظر می مونه تا پیغام جدیدی برای شما بیاد و بعد از دریافت، اون رو نمایش میده!

این باگ در عمل

توی این فیلم می تونید استفاده از این باگ رو در عمل مشاهده کنید.همونطوری که می بینید دو پنجره باز هستند. اولین پنجره صفحه ی فردی هست که از این باگ استفاده می کنه و پنجره ی دوم صفحه ی شخصی هست که روش این مشکل امنیتی رو داریم تست می کنیم.
در ابتدا در پنجره ی اول Logout می کنیم تا معلوم شه بدون لاگین بودن میشه از این باگ استفاده کرد.
مرحله ی بعدی پیدا کردن userid کاربر مورد نظر هست. برای این کار من از Inspect Element که یکی از قابلیت های مرورگر کروم و خیلی از مرورگر های دیگه هست استفاده کردم. می شد این کار رو با View page source هم انجام داد.
حالا userid رو داخل لینک اولی که در بخش قبل معرفی کردم paste می کنیم و بعد از چند ثانیه می بینید که کاربر در پنجره ی دوم پیغام رو دریافت می کنه! یادآوری می کنم که در مرورگر اول حتی لاگین نبودیم!
حالا با تغییر یک حرف در مقدار time_str دوباره این کار رو تکرار می کنیم.
همونطور که می بینید کاربر در مرورگر دوم مجدداً پیغام رو دریافت می کنه اما از طرف یک کاربر با نام دیگه!
در ادامه هم با استفاده از لینک دوم و userid کاربر مورد نظر پیغام هایی که از طرف اون کاربر به نئو رسیدرو دریافت می کنیم! مجدداً با وجود اینکه لاگین نیستیم!
یعنی دقیقا می تونید از طرف یک شخص دیگه به یک کاربر پیغام بدید و پیام های اون کاربر رو دریافت کنید.

نتیجه گیری

باز هم میگم هدف از این پست مطلع شدن طراحان کلوب از این باگ هست.
طراحی این وبسایت بسیار خوب و دقیق بوده و باگ های کوچکی مثل این موارد هیچ خدشه ای به موفقیت این وبسایت وارد نمی کنه، ولی برطرف کردن این موارد به بهتر شدنش کمک می کنه.

باز هم به طراحان این وبسایت کم نظیر تبریک می گم.

به روز رسانی: این باگ توسط طراحان کلوب اصلاح شد

خوشبختانه در مدّت زمان خیلی کمی این باگ توسط طراحان کلوب اصلاح شد. در حال حاضر جهت دریافت و یا ارسال پیغام زنده علاوه بر پارامتر های قبلی پارامتر جدیدی با نام time_ftr نیز باید به سرور تحویل داده شود. پس لینک های جدید به این صورت خواهند بود:

http://chat.cloob.com//Chat/Chat_Manager.php?data={"user":"990###", "event":"readMessage",
"users_status":"", "time_str":"s9ecmmgggmzoxg",
"time_ftr":"fb24b622e#####15bbceecf6a7e6bf66"}

که مقدار time_ftr یک MD5 Hash می باشد و برای هر کاربر متفاوت است. از خواص MD5 می توان به برگشت ناپذیر بودن آن اشاره کرد و با توجه به این ویژگی پیدا کردن نحوه ی ساخت این پارامتر بسیار دشوار و شاید غیر ممکن باشد. همچنین با توجه به اینکه دو پارامتر، هویت هر کاربر را مشخص می کنند دیگر با عوض کردن یک حرف، حدس زدن یا Bruteforce کردن، نمی توان از طرف کاربر دیگری پیغامی فرستاد یا پیام های زنده ی وی را دریافت نمود.
از حسن توجه طراحان کلوب ممنونم و مجدداً به این تیم به خاطر ایجاد این سایت قدرتمند تبریک می گم.

لینک های داخلی

لینک های خارجی

93 فکر می‌کنند “مشکلات امنیتی کلوب.کام

  1. فرزانه

    سلام
    من یه آدمیم که تا حالا فقط به سایتا مرفتم سر میزدم نگاه می کردم نظر میدادم……. و خلاصه یه مشت کار بیخود دیگه که توی این دنیای نت انجام میدادم
    ادعا میکردم از pc چیزی حالیم
    اما باید اعتراف کنم بعد خوندن این مطالب هنگ کردم که چقدر من خنگم
    بابا تو دیگه کی هستی!!!!!
    خیلی دوست دارم بیشتر در مورد این یه سری مسائل بدونم
    واقعا جالب بود
    مرسی از اطلاعاتتون
    همیشه موفق و پیروز باشین
    یا حق

    پاسخ
  2. bobjef

    آقا سیاوش مثل همه پروژه های قبلیت گل کاشتی.
    احسنت که توضیحات کامل دادی و مشتاقان این علم رو آگاه کردی.
    به امید روزی که برای ایران در جهان افتخار آفرینیات رو تکرار کنی

    پاسخ
  3. n3o

    خوب، اصلا از خوندن این پست تعجب نکردم. هر جاش که می خواستم شگفت زده شم، باز به خودم می گفتم، خوب این که چیزی نیست، سیاوشم بلده اینکارارو!!!…

    ولی یه تشکر بهت بدهکارم. اینکه خیلی بهم انگیزه میدی. از همون ۴ – ۵ سال پیش تا الان پیشرفتم به خاطر انگیزه دادنای تو بوده (البته باید بگم این یه ذره پیشرفت)…!!!

    پاسخ
  4. فرامرز

    سیاوش یه نمونس

    یه نمونه واسه همه ماها
    نمونش خیلی خیلی کم پیدا میشه

    سیاوش خیلی کارت درسته به خدا
    به تلاشت و به استعدادت غبطه میخورم و خیلی خوشحالم که تو ایرانی هستی

    دمت گرم

    پاسخ
  5. MAM

    سلام
    من یکی از کسانی هستم که شما یا شاید بهتر نئو من را در لیست دوستانتان خهود قرار داد
    واقعا وقتی این را خوندم یک خورده ترسیدم چون من خیلی از این جور چیز ها لطمه خوردم و تقریبا دیگه هیچ وقت طرف اینجور چیز ها نمی رم
    می خواستم بدونم این که به کامپیوتر من یا بقیه افراد صدمه که نمی زنه (الته ببخشید اینجوری سوال می پرسم) چون واقعا نمیشه به این جور چیز ها اطمینان کامل داشت
    ولی واقعا شما نابغه اید اصلا این چیز هایی که گفتید اصلا درک من ان را نمی کشید ممنون از اطلاعاتتان

    پاسخ
  6. Dijam

    سلام سیاوش ، نمی دونم از کی کلوپ رو میشناسی ، من از روزای اولی که راه افتاد ازش استفاده می کردم ، راه طولانی رو طی کردن تا به اینجا رسیدن ، بیشتر شبیه آزمون و خطا بود تا یه کار حساب شده!! اوایل باگ های وحشتناکی داشتن حتی تا یک سال پیش ، اما الان واقعا به ثبات خوبی رسیدن….

    پاسخ
  7. من نه منم !

    سلام
    نماز و روزه هاتون قبول باشه ( انشالله)
    آقا به وجود انسانهائی مثل شما افتخار میکنیم.
    انشالله همیشه موفق باشین.
    التماس دعا .وخداحافظ

    پاسخ
  8. کنجکاو

    به نظرتون شما که اطلاعات ۱۶۸ هزار نفر ور گرفتی و ذخیره کردی از کجا معلوم از عکس یا اطلاعات شون استفاده نکنی؟ البته ممنونم که اینو بیان کردی و باید به نظرم به درخواست دوستیها بیشتر دفت کنیم

    پاسخ
  9. محسن

    کنجکاو جان خوب این چه ربطی به ربات داره. تو که عکستو گذاشتی توی پروفایلت یعنی قبول کردی بقیه ببینن عکستو یا سیوش کنند.
    با این حساب به کل کلوب باید این نکترو گوش زد کنی. چون ممکنه از عکست یا اطلاعاتت استفاده کنند :) ))))

    پاسخ
  10. امیر

    سلام
    منم اگه بخوام یه کاری کنم که ادد لیستم زیاد بشه باید چیکار کنم؟
    میشه مثلا در قبال پولی که من به شما میدم تعداد ادد لیسته منو مثلا به ۳۰٫۰۰۰ تا برسونید؟
    آیا امکانش هست؟
    این شماره منه
    ۰۹۱۹۲۰۳۹۷۸۵
    ممنون میشم بیشتر اطلاعات به من بدید
    شما واقعا نابقه اید

    پاسخ
  11. ناصر

    خیلی برام جالب بود، دونستن اینکه در ایران هم چنین اتفاقی میوفته خوشحال کننده است، امکانش هست سورس این موضوعی رو گفتی برای من هم بفرستی . سپاس

    پاسخ
  12. امیر

    سلام.
    من می خواستم اگه میشه کد javaی اون برنامه تشخیص عکس رو می خواستم.اگه برام میل کنید ممنون میشم.
    یه سری سوال هم دارم که خصوصی ازتون می پرسم.
    چه وقتایی on میشید؟
    ممنون بابت توجه.
    شب خوش.

    پاسخ
  13. ﺎﻣﻳﺭﻤﻬﺩﮮ

    من یک برنامه برای خواندن تصویر امنیتی سایت کلوب نوشتم، هر کدوم از دوستان که سورس این برنامه که به زبان جاوا هست رو خواستن کافیه در نظرات درخواستش کنن تا براشون میل کنم))))))((((((من اینو میخوام :( پدرمونو در آورده این کد تصویری !! اگه میشه واسه من میل کن خیلی لازمش دارم !! من همونیم که پروفایل سایفر روبات رو ساختم که اون بالا هم عکسشو گذاشتی !! اگه خواستی پسوردشم بهت میدم !! اون سورس رو بهم بده خیلی لازمش دارم :( :(

    پاسخ
  14. dostare neo

    سلام
    آقا سیاوش با این اطلاعاتی که میدی معلومه کلی بارته دمت گرم خیلی خوشم اومد امیدوارم همیشه تو کارات موفق باشی کاش منم میتونستم در محضرت یه چیزی یاد بگیرم خیلی علاقه دارم

    پاسخ
  15. dostare neo

    راستی جدیدا گفتگوی زنده کلوب عوض شده منم با شبکه میام بالا و قادر به درخواست تنظیمات نیستم چطور میتونم فعالش کنم ممنون

    پاسخ
  16. محمد

    به نظر من کار خیلی ساده تر و مطمئن تر برای طراحان کلوب استفاده از session بود.
    تنها پارامترهایی که نیاز داشت در json قرار دهند، ID گیرنده پیغام و متن پیغام بود. بقیه اطلاعات مثل ID فرستنده و time stamp و … باید سمت سرور ساخته شوند

    پاسخ
  17. d.d.d.

    سلام
    مطلب تون خیلی جالب بودو بسیار مفید.
    یه سوال داشتم. راستش اعتماد زیادی به کلوب ندارم برا اینکه مدتی ه یه نفر که قبلا هم میشناختمش برام دوباره دعوتنامه ی دوستی فرستاده بود که منه ساده هم تایید کردم. ولی بعدش هر کاری کردم از لیست دوستانم حذف نمی شد. چند نفر رو همینجوری حذف کردم شد ولی اون نمیشد . پیغامی که میداد این بود دسترسی به این بخش امکان پذیر نیست انگار این من بودم که از بیرون میخاست به اون قسمت وارد شه خیلی برام عجیبه. بعد انگاری خودش حذف کرد نمیدوم . میتونه مخفیانه حضور داشته باشه یا هکم کنه . از این ادما هر چی بگی بر میاد از زور بی کاری چه کارا که نمی کنن. ممنون میشم جواب بدین.

    پاسخ
  18. cedar

    سلام ، باعث خوشحالی من هست که با همچین سایت خوب و پر محتوایی آشنا شدم ، تشکر بابت توضیحات کامل و ساده ی شما ، موفق باشید

    پاسخ
  19. علی

    سلام واقعا عالی دستتون درد نکنه
    ولی تو را خدا ما دانشجوییم توی خوابگاه سرور مان را فکر کنم دانشگاه بسته پنجره گفت و گو باز میشه ولی میگه سرور مشکل داره راهی برای گفت وگو هست ؟خواهشا کمک کنید به این ایمیل بفرستین
    ممنون

    پاسخ
  20. رضا

    سلام
    لطفا کدها رو برام ارسال کنید.
    خیلی علاقه به پردازش تصویر دارم (نه برای اسپم!!) ولی چیز زیادی نمی دونم ، خوشحال میشم برام هر چی کد در این زمینه و به خصوص به زبون php دارید بفرستید
    سپاس

    پاسخ
  21. bahman

    باسلام وخسته نباشید
    می بخشید که مزاحم وقت گرامی تون شدم من قبلا عضو کلوب دات کام بودم ولی بعد از مدتی کلمه عبور واسم رمزرا فراموش کردم
    اگه ممکنه کمکم کنید تا بتونم وارد سایت محبوبم شوم از کمک تون خیلی خیلی ممنونم

    پاسخ
  22. امیر

    سلام . خسته نباشی آقا سیاوشمطالبت واقعا کار آمد هستن اگه میشه برنامه ای که برای تصاویر امنیتی کلوب نوشتی میل کن ممنون میشم. اگر هم تونستی یه آموزشی در مورد نوشتن روبات بزار. من که خیلی دنبالشم ولی خوب پیدا نکردم تا حالا

    پاسخ
  23. بیان

    سلام خسته نباشین
    آقا سیاوش من وقتی سایت کلوب رو تو نوار آدرس IE می نویسم هیچی نمیاره فقط یه صفحه سفیده. نمی دونم چشه فقط سایت کلوبم همینطوره لطفا راهنماییم کنین چیکار کنم
    لطفا زود جواب بدین.مرسی

    پاسخ
  24. بیان

    در ضمن از یکشنبه اینطوری شده ۲۶/۱۰/۸۹
    چیکااااااااااااااااارررررررررررررر کنممممممممممممم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

    پاسخ
  25. reza

    شما خیلی خوب و ساده مطالب را توضیح می دهید .بنده دانشجوی کارشناسی امار می باشم و درس پروژه را برداشته ام که درمورد براورد نقطه ای بیز با داده های فازی می باشد.و در پروژه ام به مشکل برخورده ام نسبت سامیش روی تابع عضویت های, عضو فضای فازی برای یک ایکس ثابت چه طوری حساب می شود.البته اگه ایمیل شما را داشته باشم توضیح بیشتری می دادم .اگه جواب را ایمیل کنید یه دنیا ممنون.با تشکر.

    پاسخ
  26. nobody

    با سلام
    هر کدوم از دوستان که سورس این برنامه که به زبان جاوا هست رو خواستن کافیه در نظرات درخواستش کنن تا براشون میل کنم.
    ممنون

    پاسخ
  27. rezascorpion

    سلام دوست عزیز خوبی.
    من یه روش فهمیدم که ضعف کلوب رو نشون میده
    من نه هکر هستم و نه چیزی از هک سر درمیارم
    ولی مخم خوب کار میکنه و دوتا روش به ذهنم رسید که واقعا جالبه این روش رو من اسمشو
    انتی مسدود گزاشتم البته روش اول رو خیلیا بلدن ولی به من به خودم افتخار میکنم چون از
    کسی یاد نگرفتمش خودم یاد گرفتم روش دوم
    یکم پیچیده هست فک نکنم کسی بهش پی بده باشه شاید چون یه چیز به ظاهر مسخره و
    ساده بیاد کسی بهش دقت نکرده
    این روش انتی مسدود هست وقتی در کلوب های سایت کلوب دات کام عضو میشید و
    توصت مدیراون کلوب یا معاون هاش مسدود میشی
    به راحتی ازاد میکنی خودتو روش اول فقط برای اتاق گفتگوی کلوب ها میشه استفاده کرد ازش

    و من میخوام این روش ها رو اینجا بگم که
    مدیران سایت کلوب جلوشو بگیرن

    روش اول برای اتاق گفتگو هست
    ::::::::::::::::::::::::::::::::::::::::
    وقتی وارد اتاق گفتگوی یه کلوب شدین
    و توانستین متن بنویسین زود برین حذف عضویت
    بزنین و اگه کسی شمارو مسدود بکنه شما فقط از اتاق اخراج میشین چون شما عضو اون کلوب نیستید که بخواین مسدود بشین و با عضویت مجدد میتونین وارد اون کلوب بشین
    اما یه ضد این روش هم هست اینم میگم
    اینه که مدیر اون کلوب عضویت کلوبش رو تایید دار بکنه شما که مجدادآ عضویت میزنین رو خفت میکنه و راحت مسدود میشین
    و اما روش دوم : نیازی به حذف زدن نیست
    وقتی از اون کلوب مسدود میشین با استفاده از این روش به راحتی ازاد میشین حتی اگر عضویت رو تایید دار کرده باشن
    ولی این روش خیلی پیچیده هست
    پیچیده نیست ولی اینجوریم نمیشه توضیحش داد.

    پاسخ
  28. yakoba

    میخوام تو کلوب دات کام عضو باشم و طریقه ثبت نام تو کلوب را بهم بگین ممنون میشم هرچه سریع تر بهتر بتزم ممنون

    پاسخ
  29. yakoba

    میخوام تو کلوب دات کام عضو باشم و طریقه ثبت نام تو کلوب را بهم بگین ممنون میشم هرچه سریع تر بهتر بازم ممنون

    پاسخ
  30. SaRa

    man y moshkeli daram ba cloob…vaghti tu y bahs ya yadasht ya naghashi mikham chizi befrestam kode tasviri nemiad har cheghadam ruie taghire kod clik mikonam faiideii nadare
    khahesh mikonam zudi komakam konid

    پاسخ
  31. مهیا

    سلام من عضو کلوب هستم ولی چندروزیه که اصلا هیچ کدوم از صفحه های کلوب برام باز نمیشه.
    همش مینویسه۴۰۰ Bad Request!!!!!
    چیکار بایدبکنم
    تروخداکمکم کنید
    ممنون

    پاسخ
  32. محسن

    سلام من عضو کلوب هستم ولی چندروزیه که صفحه کلوب برام باز نمیشه. مینویسه۴۰۰ Bad Request!!!!! چیکار بایدبکنم ممنون میشم راهنمایی کنید

    پاسخ
  33. باران

    سلام من عضو کلوپ شدم ولی صفحه کلوپ برام باز میشه وبعد فورا ارور operation birtedمیدهد.خواهشا کمکم کنید.ممنون میشم.حتما

    پاسخ
  34. شیدا

    salam
    manam mikhastam begam chand roze tedade azaye hazer dar cloob besorate khate tire neshon dade mishe
    nemitonam roye katibeye khodam va dostanam payami bezaram
    lotfan komak konid va ien moshkel ro hal konid

    پاسخ
  35. behnam

    سلام من هم برنامه تو میخوام هم اینکه میخوام بدونم نمیشه یه کاری کرد وقتی داخل رومای کلوب دات کامی مسدود نشی یا اینکه بعد مسدودیت آزاد کنی خودتو ؟؟؟؟؟؟؟؟؟مرسیــــــ

    پاسخ
  36. وحید

    چرا سایت کلوب باز نمیشه؟
    و این خطا رو میده
    ۴۰۰ Bad request Your browser sent an invalid request. من تقریبا با اکثر مرور گر ها هم چک کردم ولی نمی تونم بازش کنم

    پاسخ
  37. داریوش

    کلوب تبریک داره این همه گند زدنش
    تازگی که فقط باید سکه بندازی و شرط بندی کنی که امروز سروراش مشکلی دارن واسه باز شدن سایت یا نه

    پاسخ

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>