نگاره‌هایی پیرامون امنیت، شبکه و رمزنگاری

06 مارس 2020

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

قدم اول Information Gathering:

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

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

خوب آدرس رو پیدا کردم .

آدرس رو تو مرورگرم زدم ببینم چی خروجی میده!

حالا با آدرس ها بازی میکنیم ببنیم چه نتیجه ای میگیریم, خوبه یه آدرس login پیدا کردیم .

حالا بیایم بر اساس استاندار OWASP ببینم چه چیزهای را میتوانیم گزارش بدهیم. من F12 تو مرورگر میزنم بعد رو تب Network کلیک میکنم یه F5 میزنم. از سمت چپ روی آیتم login کلیک میکنم و هدر های Response رو یه نگاهی میکنیم .

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

X-Frame-Options: SAMEORIGIN

این هدر باعث میشود از تزرق iframe و clickjacking جلوگیری کند.

X-XSS-Protection: 1; mode=block

این هدر باعث میشود که کد های XSS رو مروگر کاربر اجرا نشود (تقریبا جلوی هک شدن کلاینت های وب سایت را میگیرد. )

امنیت کوکی‌ها

خوب بریم تو تب Application ببینیم تو Cookie چه خبر هست .

همانطور که در تصویر زیر می بینید میتوان تشخیص داد که زبان برنامه نویسی وب سایت PHP می‌باشد و فریمورک مورد استفاده Code Igniter هست ( بعضی ها تا به اینجا می رسند میگن فلان فریمورک است و دیگه نمیشه هکش کرد خیلی امن هست اما یک هکر هیچ وقت زود تسلیم نمیشه و تا آخرین نفس ادامه میده 😋) . متاسفانه تنظیمات Secure cookie flag اعمال نشده است و HttpOnly cookie flag مقدارش false می‌باشد که به هکر اجازه میدهد اگر در سایت XSS وجود داشته باشد براحتی حملات Cookie & Session Hijacking را انجام دهد .

قدم دوم (آغازی بر نفوذ):

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

بر میگردیم به صفحه ورود و می بینیم که گزینه ثبت نام وجود دارد یه حساب کاربری می‌سازیم .

حالا وارد پنل می‌شویم:

خب حالا باز به دنبال صفحاتی میگردیم که بتونیم چیزی تزریق کنیم .

پیدا کردن نقاط تزریق Injection Point:‌

به قسمت های مختلف یک وب سایت که یه هکر میتواند مقادیر آنرا تغییر بدهد نقاط تزریق میگویم.

که شامل قسمت های زیر میباشد :

  1. فرم های یک سایت که میتواند از متد های GET – POST باشد
  2. فیلد های Hidden فرم ها
  3. هدر های HTTP
  4. مقادیر Cookie در مرورگر کاربر
  5. درخواست های Ajax یا XHR
  6. localStorage و sessionStorage در مرورگر کاربر

من یه صفحه ای رو پیدا کردم با هم ببینیم داخلش چه خبر هست؟

همانطور که در تصویر زیر میبینید گزینه های ویرایش و حذف و .. وجود دارد .

آسیب پذیری Insecure Direct Object Reference:

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

خب من الان عدد انتهای URL رو یه واحد کم یا زیاد میکنم ببینیم IDOR وجود دارد یا خیر ؟

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

من درخواست update را اجرا کردم و اطلاعات شخص دیگری رو تغییر دادم بدون آنکه برای من باشد. آدرس درخواست را در صفحه جدید مرورگر باز میکنم ببینیم باز چی خروجی میدهد. همانطور که میبینید سیستم دچار خطا شده است و مسیر کامل سرور را نمایش میدهد (Full Path Disclosure)

تا اینجا بسته یا ادامه بدیم ؟!

خوب من دوباره ادامه میدم ببینیم میتونیم باگ دیگری پیدا کنیم یا نه .

برمیگردیم به همون صفحه ای که لیست رکورد ها را نشان میداد یه قسمت سرچ داشت از همون اول ذهنم را مشغول کرده بود ( باگ داره , نداره) ؟

من Burp Suite را توی سیستم خودم باز میکنم.

روی گزینه Run کلیک میکنیم . مسیر زیر رو میریم ببینیم Proxy رو چه پورتی تنظیم شده است .

تو مرورگر Mozilla Firefox میریم و Proxy رو تنظیم میکنیم.

برای نصب burp suite ssl certificate مراحل زیر را انجام میدیم .

حالا Proxy را تو نرم افزار burp suite فعال میکنیم .

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

خوب همینطور که تو Burp می بینید یکسری مقادیر داره به یک صفحه ای POST میشود من روی گزینه Action کلیک میکنم و روی گزینه Send to Repeater را میزنم تا بریم در این قسمت تزریقات خودمان را انجام بدهیم .

خوب من روی تک تک فیلد ها مقادیری را تزریق کردم و تست کردم اما تو یکی از فیلد ها نتیجه ای خوبی گرفتم!

بله آسیب پذیری SQL Injection (عالی شد) با متد xPath injection با استفاده از این باگ میتوانیم اطلاعات مهم مانند نام کاربری و کلمه عبور کاربران و … را بدست آوریم.

قدم سوم (ٍExploiting):

تقریبا همه حمله SQL Injection را بلد هستند من میرم سراغ پیدا کردن جدول های مهم.

بریم سراغ بدست آوردن فیلد های مهم جدول users.

بریم ایمیل و پسورد کاربران را بدست بیاریم، این از ایمیل:‌

حالا پسورد این کاربر:

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

خب از تابع substring استفاده میکنم ببینم چیز دیگر در میاید یا خیر؟‌

خب حالا این تیکه های هش رو در کنار هم میزاریم ببینیم چی تو خروجی در میاید.

خب این یه Hash است اگر نگاه کنید طول هش 40 کاراکتر است احتمالا از الگوریتم هش SHA1 برای پسورد ها استفاده کرده میریم ببینیم میشه هش رو کرک کنیم یا نه .

بله بود خیلی عالی شد بریم لاگین کنیم تو پنل .

لا نِعْمَةَ اَهْنَاءُ مِنَ الاَْمْنِ
هيچ نعمتى گواراتر از امنيت نيست
امام علی (ع)

میثم منصف
3 پست نوشته شده
دنیای من برنامه نویسی,تست نفوذ وب و موبایل
  • به اشتراک بگذارید:
برچسب‌ها: ، ،