SSRF (Server-Side Request Forgery) یا «جعل درخواست سمت سرور» نوعی آسیبپذیری امنیتی است که زمانی رخ میدهد که مهاجم بتواند یک برنامهی وب یا API را وادار کند تا بهصورت غیرمجاز به منابع داخلی شبکه درخواست ارسال کند. این مسئله ممکن است منجر به دسترسی غیرمجاز، افشای دادهها، نفوذ به سیستم و حتی اجرای کد از راه دور (RCE) شود.
در چنین شرایطی، مهاجم با دور زدن فرآیندهای اعتبارسنجی ورودی، برنامه را فریب میدهد تا به مقاصد مخرب یا منابعی دسترسی پیدا کند که حتی در پشت فایروال یا شبکههای خصوصی مجازی (VPN) محافظت شدهاند.
آنچه در ادامه میخوانید:
حمله SSRF چیست و چگونه عمل میکند؟
در حمله SSRF، مهاجم معمولاً دادهای را که برای مشخص کردن آدرس مقصد (URL) درخواستهای سمت سرور استفاده میشود، دستکاری میکند. این اتفاق زمانی میافتد که برنامه وب قبل از استفاده از ورودی کاربر برای بازیابی داده از یک منبع خارجی، آن ورودی را اعتبارسنجی (sanitize) نکند. درنتیجه، مهاجم میتواند سرور قربانی را وادار کند تا درخواستهایی را به مقاصد دلخواه ارسال کند که ممکن است منجر به خطرات امنیتی متعددی شود.
اگر منبع هدف دارای روابط اعتماد (Trust Relationships) با سایر سیستمها باشد، مانند سرویسهای متادیتای ابری یا APIهای پشتیبان، مهاجم میتواند از طریق SSRF به آن منابع نیز دسترسی یافته و دادههای حساس را استخراج کرده یا دستورات غیرمجاز اجرا کند.
با توجه به اینکه برنامههای وب مدرن برای سهولت استفاده کاربران، قابلیتهایی مانند فراخوانی URLها را ارائه میدهند، وقوع حملات SSRF در حال افزایش است. با گسترش سرویسهای ابری و ساختارهای غیرمتمرکز، شدت و پیچیدگی این نوع حملات نیز بیشتر شده است.
SSRF یکی از ده تهدید برتر امنیتی OWASP (OWASP Top 10) محسوب میشود و هم در برنامههای وب و هم درAPIها جزو آسیبپذیریهای بحرانی طبقهبندی شده است.
۲. مهاجم ورودی را به گونهای تغییر میدهد که به منبع داخلی یا سرویس محافظتشدهای اشاره کند.
۳. سرور، ورودی مخرب را پردازش کرده و از دید خود (نه مرورگر کاربر) به URL هدف درخواست ارسال میکند.
۴. اگر سرور هدف در شبکه داخلی باشد، مهاجم میتواند از طریق آن به دادههای حساس دسترسی یافته و اطلاعات را به بیرون منتقل کند.
۵. SSRF همچنین میتواند برای اسکن پورتهای شبکه داخلی استفاده شود تا مهاجم بتواند آسیبپذیریهای دیگر را شناسایی کند.
۶. در محیطهای ابری، SSRF بسیار خطرناکتر است، زیرا ممکن است مهاجم بتواند به سرویسهای متادیتای ابری (Cloud Metadata Services) دسترسی پیدا کند.
تأثیر حملات SSRF میتواند از دسترسی غیرمجاز به دادهها و سرویسها تا نفوذ کامل به سیستمهای داخلی و محیطهای ابری متغیر باشد.
فرض کنید یک برنامه وب، قابلیتی برای آپلود تصویر دارد و به کاربران اجازه میدهد آدرس (URL) تصویر موردنظر خود را برای پردازش وارد کنند. مهاجم بهجای وارد کردن آدرس یک تصویر واقعی، یک URL مخرب را وارد میکند که به یک منبع داخلی در سرور (مثلاً پایگاه داده یا فایل سیستمی محرمانه) اشاره دارد. سرور بدون بررسی صحت آدرس، طبق دستور کاربر، به منبع داخلی متصل شده و دادههای حساس را بازیابی کرده و آن را به مهاجم بازمیگرداند.
پس از نفوذ اولیه، مهاجم میتواند درخواستهایی به منابع دیگر ارسال کرده، آسیبپذیریها را شناسایی کند یا حتی با سرویسهایی که سرور به آنها دسترسی دارد، تعامل داشته باشد. نتیجهی چنین حملهای ممکن است شامل افشای دادهها، اختلال در سرویس، یا نفوذ به زیرساخت داخلی سازمان باشد.
در این نوع حمله، مهاجم URL مخربی را به ورودی کاربر تزریق میکند تا سرور به منبع مورد نظر او درخواست ارسال کند. پاسخ سرور مستقیماً برای مهاجم قابل مشاهده است و میتواند اطلاعات مفیدی درباره ساختار شبکه داخلی یا سرویسهای فعال بهدست آورد.
در حملهی کور، مهاجم پاسخ مستقیم سرور را دریافت نمیکند. در عوض، با مشاهدهی تغییرات در رفتار برنامه مانند خطاها، تأخیر در پاسخ یا تفاوت در وضعیت HTTP تشخیص میدهد که حمله موفق بوده است.
در این روش، مهاجم از تأخیر در پاسخ سرور برای استنتاج موفقیت حمله استفاده میکند. با ارسال ورودیهای مختلف و اندازهگیری زمان پاسخ، مهاجم میتواند اطلاعاتی درباره منابع داخلی یا ساختار شبکه بهدست آورد.
برای جلوگیری از SSRF، باید مجموعهای از تدابیر امنیتی را در طراحی و پیادهسازی برنامه رعایت کرد:
تمامی دادههای ورودی کاربران، بهویژه URLها، باید بهدقت اعتبارسنجی شوند.
در برنامه، فهرستی از آدرسها و دامنههای مجاز تعریف کنید تا فقط به مقاصد مشخص و ایمن درخواست ارسال شود. این کار سطح حمله را بهشدت کاهش میدهد.
فرض کنید در یک سیستم مدیریت محتوا (CMS)، کاربران میتوانند برای افزودن تصویر، آدرس URL وارد کنند. در نسخهی اولیه، هیچ اعتبارسنجی روی URL انجام نمیشود و مهاجم با وارد کردن یک URL مخرب به یک منبع داخلی، سعی در نفوذ دارد.
اما تیم امنیتی با پیادهسازی اعتبارسنجی دقیق URLها و استفاده از لیست سفید دامنهها، جلوی این حمله را میگیرد. در نتیجه، درخواست مخرب شناسایی و رد میشود، بدون آنکه سرور به منبع داخلی دسترسی پیدا کند.
این نمونه نشان میدهد که اعتبارسنجی ورودیها و کنترل مقصد درخواستها میتواند از بروز حملات SSRF جلوگیری کند و یکپارچگی و امنیت زیرساخت داخلی سازمان را حفظ نماید.

SSRF یا جعل درخواست سمت سرور نوعی آسیبپذیری امنیتی است که در آن مهاجم، سرور را فریب میدهد تا به جای کاربر، به آدرس یا منبعی دیگر در شبکه درخواست ارسال کند. این حمله معمولاً برای دسترسی غیرمجاز به منابع داخلی یا استخراج اطلاعات حساس استفاده میشود.
در حمله SSRF، مهاجم ورودی کاربر را طوری دستکاری میکند که برنامهی تحت وب، درخواستی به مقصدی که مهاجم تعیین کرده ارسال کند. این مقصد میتواند یک سرور داخلی، سرویس ابری، یا API حساس باشد که از بیرون شبکه قابل دسترسی نیست.
در SSRF معمولی مهاجم پاسخ درخواست را مستقیماً مشاهده میکند، اما در Blind SSRF مهاجم پاسخ را نمیبیند و تنها از نشانههایی مانند زمان پاسخگویی، خطاها یا تغییر رفتار برنامه، نتیجه میگیرد که حمله موفق بوده است.
زیرا SSRF میتواند به مهاجم اجازه دهد به منابع داخلی شبکه، پایگاهدادهها، متادیتای سرویسهای ابری و APIهای محرمانه دسترسی پیدا کند. در محیطهای ابری، این نوع حمله ممکن است حتی به تسخیر کامل سرور یا اجرای کد از راه دور (RCE) منجر شود.
خیر، SSRF علاوه بر وباپلیکیشنها، میتواند در APIها، سرویسهای ابری (Cloud Services) و حتی در زیرساختهای میکروسرویس (Microservices) نیز رخ دهد؛ هر جایی که سرور بهطور خودکار درخواستهایی را بر اساس ورودی کاربر ارسال کند.
فرض کنید یک برنامهی وب به کاربر اجازه میدهد آدرس تصویر مورد نظرش را وارد کند تا آن تصویر را پردازش کند. مهاجم به جای وارد کردن URL واقعی تصویر، آدرس یک منبع داخلی (مثل http://localhost/admin) را وارد میکند. سرور به اشتباه به آن آدرس دسترسی پیدا میکند و دادههای حساس را در اختیار مهاجم قرار میدهد.
زیرا SSRF یکی از آسیبپذیریهایی است که هم در اپلیکیشنها و هم در APIها بهطور گسترده دیده میشود و در صورت بهرهبرداری موفق، میتواند به نفوذ عمیق به سیستم و زیرساخت داخلی منجر شود.
بله، ابزارهایی مانند Burp Suite ،OWASP ZAP ،Nuclei ،SSRFmap و Metasploit میتوانند برای شناسایی و تست آسیبپذیری SSRF در برنامهها مورد استفاده قرار گیرند.