روزانه

باخت بیل گیتس در ۸۰ ثانیه

مسابقه شطرنج سرعتی جمعه پیش که بین بیل گیتس و مگنس کارلسن، قهرمان جوان نروژی برگذار شد نتیجه ای نداشت جز باخت بیل گیتس در ۸۰ ثانیه.

مگنس کارلسن 23 ساله

مگنس کارلسن ۲۳ ساله

این مسابقه که به وسیله یکی از مجریهای مشهور تلویزیون نروژ اجرا شد و در کشورهای نروژ، دانمارک و سوئد پخش شد، تنها ۹ حرکت داشت.

بیل گیتس پیش از شروع مسابقه گفته بود که این بازی یک “نتیجه مقدر” داره. بیل گیتس ۵۸ ساله که سال گذشته به عنوان دومین شخص پولدار دنیا از طرف مجله فوربس معرفی شد، برای هر حرکت کل بازی ۲ دقیقه وقت داشت در حالیکه حریف ۲۳ ساله او تنها ۳۰ ثانیه می تونست برای هر حرکت فکر کنه.

مگنس که به “جاستین بیبر شطرنج” مشهور شده، از ۱۳ سالگی استاد بزرگ بوده و پس از شکست دادن آناند در نوامبر گذشته تبدیل به یکی از چهره های مشهور تلویزیون های نروژ شده.

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

منبع

Standard
امنیت, برنامه‌نویسی

یافتن نام کاربری اعضای سایت دیگو

من حافظه ضعیفی دارم و معمولا به جای اینکه روی اون حساب کنم از lastpass استفاده می کنم. چند روز پیش به دلایلی به لستپس دسترسی نداشتم و مجبور شدم از گزینه forgot password سایت diigo استفاده کنم. بعد از وارد کردن ایمیل و سابمیت، سایت اعلام کرد که فلانی، لینک تغییر پسورد رو به ایمیلت فرستادم. اینجوری بود که فکری به سرم زد برای یافتن نام کاربری اعضای سایت دیگو.

اپلیکیشن ها و افزونه هایی مثل Awesome Screenshot، Quick Note، Read Later Fast، Diigolet و کلی سرویس دیگه از محصولات diigo است.

در تصویر زیر پاسخ سایت رو در شرایط متفاوت خواهید دید.

پیدا کردن نام کاربری و ارسال ایمیل

پیدا کردن نام کاربری و ارسال ایمیل

آدرس ایمیلی که در سایت وجود ندارد

آدرس ایمیلی که در سایت وجود ندارد

اگر source صفحه اعلام فراموشی رو نگاه کنیم با فرم زیر رو به رو می شیم.

می بینید که آدرس ایمیل در متغییری به اسم  username به آدرس زیر ارسال می شه.

من برای شبیه سازی این کار و در نهایت انجامش به صورت تکراری، از پایتون کمک گرفتم. برای ارسال اطلاعات متغیر های POST از دستور زیر کمک گرفتم.

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

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

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

برای تستش هم یه لیست ایمیل لازم دارم. کافیه دستم رو دراز کنم و از لیست ۱۵۰ میلیون ایمیل لو رفته ادوب استفاده کنم. ایمیل ها رو در لیستی به اسم maillist.txt کنار اسکریپت پایتون می ذارم.  در نهایت غیر از خروجی که در ترمینال نشون داده می شه، فایل out.txt نیز کنار اسکریپت ایجاد می شه و ایمیل  نام کاربری های یافته شده در اون ذخیره می شه.

آدرس پروژه در سایت github:

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

این مورد به اطلاع سایت diigo خواهد رسید.

به روز رسانی:
در تاریخ ۲۱ ژانویه ۲۰۱۴ به پشتیبانی سایت دیگو ایمیل زدم و موضوع رو اطلاع دادم
در تاریخ ۲۶ ژانویه پشتیبانی سایت دیگو جواب داد و گفت مشکل رو حل می کنن

Standard
امنیت, برنامه‌نویسی

اسکریپت ارسال ایمیل تقلبی

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

نسخه اولیه اش رو می تونید در لینک زیر ببینید:

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

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

Fake Email

در کنار تغییرات تکنیکال، سعی کردم چهره مناسبی هم به فرم بدم. استایل استفاده شده هم یه نمونه رایگان در اینترنت بود که با کمی تغییرات برای این فرم مناسب شد.

از آدرس زیر می تونید به مخزن گیتهاب این پروژه دسترسی داشته باشید.

اسکریپت رو با مجوز Creative Commons نسخه ۳ منتشر می کنم پس کپی کردن، تغییر و حتی  فروشش آزاده به شرطی که محدودیت های مجوز رو رعایت کنید.

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

به روز رسانی: پس از کامنت مرتضی که در یک سرور، ایمیل ارسال نمی شد و پس از چک کردن موضوع متوجه شدم مشکلی در فانکشن mail در PHP وجود نداره. مشکل از ارسال متن ایمیل در Header بود. متن ایمیل رو به روش base64 رمز می کردم و به ایمیل اتچ می کردم که گویا این سرور نمی پذیرفت این مورد رو. بنابراین اسکریپت رو تغییر دادم که متن به صورت ساده ارسال بشه. می تونید از مخزن گیتهاب، نسخه جدید رو دریافت کنید.

Standard