باگ SSRF چیست ؟ + آموزش

باگ SSRF

در این قسمت از آموزش قصد داریم شما را با اسیب پذیری یا باگ SSRF آشنا کنیم با ما همراه باشید.

باگ SSRF چیست ؟

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

API چیست ؟

باگ SSRF چیست ؟ + آموزش
api چیست ؟

API مخفف Application Programming Interface است و به زبان فارسی معنای رابط برنامه نویسی اپلیکیشن است ؛ احتمالا تا به حال عبارت هایی همچون مانند API اینستاگرام یا API های اندروید به گوش شما نیز خورده است اما api چیست و چه کاری را برای برنامه نویسان انجام می دهد و چه فوایدی دارد که یک سرویس بسیار کار امد و جذاب برای برنامه نویسان است ؟

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

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

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

منطق حمله SSRF

باگ SSRF چیست ؟ + آموزش
حمله SSRF

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

حال نیز حمله SSRF زمانی رخ می دهد که نفوذگر بتواند یک ریکوئستی را به سمت یک سرور ارسال کند و سرور مورد نظر دستور را در شبکه داخلی ( internal network ) خود اجرا می کند و خروجی را نیز به نفوذگر نمایش دهد که به این منظور نفوذگر می تواند با استفاده از دستورات سیستمی به سرور دسترسی بگیرد و کامند های مختلف را تست کند و نیز نتیجه مورد نظر خود را بگیرد .

حمله SSRF انواع مختلفی دارد که در ادامه شما را با انواع مختلف حملات SSRF آشنا می کنیم .

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

برای مثال در قسمتی که در هدر های http برای stockApi تعریف شده است عبارت زیر را وارد کنید :

http://127.0.0.1/admin

برای درک بهتر این موضوع با ادامه این آموزش با ما همراه باشید
تا با مثال های علمی این متد را برای شما شرح دهیم. 

انواع حملات باگ SSRF  

باگ SSRF چیست ؟ + آموزش
انواع حملات باگ SSRF

حمله ( SSRF (server itself

در این نوع حمله دستورات بر روی سرور اجرا می شوند که شما باید در حمله مورد نظر خود نیز از ای پی لوپ بک (127.0.0.1) استفاده کنید. برای مثال تصور کنید در یک وب سایتی یک API تعریف شده است که از طریق API موجود کاربر می تواند ریکوئست های مختلف را ارسال کند که یک مقدار مورد نظر را بررسی کند حال نیز اگر باگ SSRF نیز وجود داشته باشد نفوگر می تواند در API مربوطه ادرس لوپ بک را نیز وارد کند و دستورات محلی را بر روی سرور ارسال کند و نتیجه مورد نظر خود را بگیرد .

حمله (SSRF (back-end system

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

برای درک بهتر این موضوع به مثال های زیر توجه کنید :

http://192.168.0.1/admin

http://192.168.10.1/admin

http://192.168.1.4/admin

حمله (SSRF (open redirection

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

حمله (SSRF (Blind

آسیب پذیری یا باگ Blind SSRF زمانی به وجود می آیند که یک نرم افزار می تواند
درخواست HTTP back-end را به URL تأمین شده صادر کند ،
اما پاسخ از درخواست back-end در پاسخ جلویی برنامه بازگردانده نمی شود.

حال نیز با چندین نوع از آسیب پذیری های SSRF آشنا شدید
و در ادامه با ذکر یک مثال و استفاده از آسیب پذیری SSRF LocalHost کار خواهیم کرد
و سپس انرا نیز اکسپلویت می کنیم تا با منطق آن آشنا شوید :

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

شروع کار با باگ SSRF

باگ SSRF چیست ؟ + آموزش
کار با باگ SSRF

برای تست اسیب پذیری باگ SSRF به یکی از لابراتور های مجازی مراجعه کرده ایم
و سپس یکی از پست های این وب سایت را انتخاب کرده ایم :

باگ SSRF چیست ؟ + آموزش
مرحله اول تست باگ SSRF

در این مرحله ابزار Burp Suite خود را اجرا کنید.
و بر روی دکمه check stock کلیک کنید تا اطلاعات مورد نظر برایتان پروکسی شود.

باگ SSRF چیست ؟ + آموزش
مرحله دوم تست باگ SSRF

حال نیز اگر به ابزار برپ مراجعه کنید خواهید دید که درریکوئستی که در حال ارسال به سرور است
یک فیلدی وجود دارد با عنوان stockApi که باید این فیلد را انتخاب کنید
و سپس این فیلد را به قسمت Repeater انتقال دهید.

باگ SSRF چیست ؟ + آموزش
مرحله سوم از تست اسیب پذیری SSRF

سپس به قسمت Repeater بروید عبارتی که در مقابل فیلد stockApi وجود دارد را حذف کنید
و عبارت زیر را جایگزین ان قرار دهید :

http:localhost/admin

باگ SSRF چیست ؟ + آموزش
مرحله چهارم از تست اسیب پذیری SSRF

سپس بر روی دکمه Send بزنید تا پکت یه سمت سرور مورد نظر شما ارسال شود و در مرحله بعدی در قست Response بر روی گزینه Render کلیک کنید و در نهایت بر روی دکمه Click to render page کلیک کنید تا نتیجه و خروجی برای شما به نمایش در اید :

باگ SSRF چیست ؟ + آموزش
مرحله پنجم از تست اسیب پذیری SSRF

تشخیص باگ SSRF

حال نیز اگر وب سایت مورد نظر شما دارای باگ SSRF Localhost باشد
و مسیر صفحه ادمین را به درستی وارد کرده باشید
خواهید دید که به پنل ادمین دسترسی پیدا خواهید کرد.

باگ SSRF چیست ؟ + آموزش
مرحله ششم از تست باگ SSRF

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

به تصویر زیر و url وارد شده و ارور داده شده دقت کنید :

باگ SSRF چیست ؟ + آموزش
مرحله هفتم از تست باگ SSRF

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

امنیت در برابر آسیب پذیری SSRF

باگ SSRF چیست ؟ + آموزش
مقابله و جلوگیری از آسیب پذیری SSRF

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

قدم دوم : تعریف Access Control Check برای کامپوننت مربوطه

 قدم سوم : برای برقراری امنیت در برابر باگ SSRF و جلوگیری از هک می‌توانید  بک بلک لیست را نیز تعریف کنید و عبارت های مانند 127.0.0.1 , 192.168.0.0 , localhost , admin و … را در بلک لیست به عنوان عبارت های غیر مجاز قرار دهید.

قدم چهارم : تعریف یک white list و قرار دادن عبارت های مجاز داخل لیست مورد نظر

قدم پنجم : قرار دادن پنل ادمین بر روی یک پورت داخلی مجزا در سرور

بایپس مکانیزم های امنیتی در SSRF

باگ SSRF چیست ؟ + آموزش
بایپس SSRF

بایپس Black List :

پیش تر در قسمت امنیت در برابر آسیب پذیری SSRF گفته شد که می توان با استفاده از یک بلک لیست ، لیستی از عبارت های غیر مجاز را فیلتر کرد اما جالب است که بدانید این روش به راحتی بایپس خواهد شد به این منظور جایگزین ای پی لوپ بک ( 127.0.0.1 ) می‌توانید از عبارت هایی همچون 2130706433  و یا 01770000001 استفاده کنید .

بایپس White List :

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

https://evil-host#expected-host

https://exected-host@evil-host

https://expected-host.evil-host

نتیجه گیری

باگ SSRF چیست ؟ + آموزش
نتیجه گیری از اموزش باگ SSRF

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

موفق باشید.

5/5 (3 نظر)

مطالب مرتبط

۴ دیدگاه در “باگ SSRF چیست ؟ + آموزش”

  • آرش اردیبهشت 3, 1399 پاسخ

    با سلام و خسته نباشید بابت مقاله خوبتون

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

    • نیما حسینی اردیبهشت 8, 1399 پاسخ

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

  • Aeymi مرداد 1, 1399 پاسخ

    سلام ممنون بخاطر مقاله های خوبتون چگونه مقاله هارا بوک مارک کنیم

    • نیما حسینی مرداد 10, 1399 پاسخ

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

دیدگاهتان را بنویسید

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

قوانین پن تست کور
دوره کالی لینوکس
نماد های اعتماد
نماد های اعتماد