مقدمه‌ای بر SSRF مشاهده در قالب PDF چاپ فرستادن به ایمیل
نوشته شده توسط محمد ظاهری   
دوشنبه, 01 شهریور 1400 ساعت 23:55

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

alt

چیه این SSRF ؟

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

تصور کنید یه وب سرور عمومی توی شبکه یه شرکت به آدرس زیر هست:

public.example.com

این آدرس یه سرویس پراکسی را توی public.example.com/proxy هاست می کنه که صفحات وبی که در پارامتر url مشخص شدند را پردازش و به کاربر نمایش میده. تصور کنید کاربر درخواست زیر را میده

https://public.example.com/proxy?url=google.com

اون وب اپلیکشن، صفحه گوگل را نمایش میده

حالا تصور کنید admin_panel.example.com یه سرور داخلیه که یه پنل مخفی ادمین را هاست می کنه. واسه اینکه مطمئن بشن فقط کارمندا می تونن به این صفحه دسترسی داشته باشند، Access control طوری تنظیم شده که از بیرون و عملاً اینترنت کسی به اون دسترسی نداشته باشه و فقط کسایی به اون دسترسی پیدا کنن که یه IP معتبر داخلی داشته باشن (مثلاً یکی از workstation های کارمندا). حالا اگه یه کاربر تقاضای زیر را بده چی میشه؟

https://public.example.com/proxy?url=admin_panel.example.com

اگر مکانسیم کنترل SSRF نداشته باشند، خب چون درخواست از Public.examaple.com میاد و یک ماشین معتبر داخل شبکه هست، صفحه کنترل پنل ادمین به کاربر نمایش داده میشه. درواقع درخواست های نامعتبر که در حالت عادی توسط فایروال بلاک می شدند، الان دارن اجرا می شن!

این به این دلیل که اون محافظتی که روی شبکه DMZ یا همون Perimeter برای کنترل بین سرورهایی مثل وب سرور و ماشین های داخلیمون ست شده، بین ماشین های روی شبکه Trusted مون (مثلاً بین public.example.com و admin_panel.example.com ) وجود نداره.

حالا با استفاده از این وضعیت، یه نفوذگر می تونه هر نوع درخواست که دلش بخواد را روی شبکه ارسال کنه و بسته به اینکه اون سروره چه دسترسی‌هایی داره، یه نفوذگر می تونه فایل‌های حساس داخل شبکه را بخونه یا مثلاً API های داخلی را صدا بزنه و یا مثل این حالتی که توضیح دادم به کنترل پنل های مخفی مدیرا دست پیدا کنه.جالب شد، نه؟!

خب 2 نوع SSRF داریم: به اولی میگن Regular SSRF یا همون SSRF معمولی و دومی هم مثل خیلی از باگ های دیگه Blind SSRF. مکانیسم‌های پشت هردوی این نوع آسیب‌پذیری یه چیزه و عملاً اعتماد بین ماشین های روی یک شبکه را مورد هدف قرار میدن و exploit می کنن. تنها تفاوتی که بین این دوتا هست اینه که توی Blind نفوذگر بازخوردی از سمت سرور به وسیله درخواست های HTTP یا error message ها دریافت نمی کنه (مثل اون بالا که نفوذگر صفحه وب درخواستیش را می دید). هرچند این موضوع کمی استخراج داده‌ها و exploit کردن شبکه را سخت تر می کنه اما با این حال خیلی برای یک نفوذگر با ارزشه.

 

آخرین بروز رسانی در جمعه, 05 شهریور 1400 ساعت 18:08
 

اخبار و رویدادها

با ما باشید.

در باره ما

در باره ما

آخرین نظرات

آخرین نظرات

آدرس

آدرس