RCE چیست و چرا بحرانیترین یافته است؟
اجرای کد از راه دور (Remote Code Execution) یعنی مهاجم بتواند کدِ خودش را روی سرورِ هدف به اجرا درآورد، بدون آنکه دسترسی فیزیکی یا حساب معتبری داشته باشد. RCE تقریباً همیشه سقفِ شدت در گزارش تست نفوذ است، چون از آن نقطه به بعد مهاجم میتواند داده بخواند و تغییر دهد، سرویس را از کار بیندازد، به دیگر سامانههای شبکه حرکت جانبی کند و ماندگاری ایجاد کند.
نکتهی کلیدی این است که RCE معمولاً مقصد است، نه مسیر. آسیبپذیریهای متفاوتی به آن ختم میشوند و شناخت این مسیرها برای دفاع مهمتر از خودِ مفهوم است. در امتیازدهیِ CVSS، یک RCEِ بدونِ احراز هویت و از راه شبکه، معمولاً امتیازِ بحرانی (نزدیک به ۱۰) میگیرد، چون هر سه بُعدِ محرمانگی، یکپارچگی و دسترسپذیری را همزمان تهدید میکند.
مسیرهای رسیدن به RCE
به ترتیب فراوانی امروزی در برنامههای وب:
- سوءاستفاده از CVE شناختهشده در اجزا: بزرگترین سبد امروز. کتابخانه، فریمورک یا میدلورِ وصلهنشده — از خانوادهی Log4Shell تا Struts، Spring، Confluence و Jenkins. همین واقعیت است که چرا OWASP در ۲۰۲۵ «نقصهای زنجیرهی تأمین نرمافزار» را به رتبهی A03 آورد.
- Deserialization ناامن: بازسازی شیء از دادهی تحت کنترل مهاجم که به زنجیرهی گجت و اجرای کد میرسد.
- SSTI: تزریق به موتور قالب سمت سرور؛ چون موتورهای قالب به گراف اشیاء زبان دسترسی دارند، غالباً مستقیم به RCE ختم میشود.
- تزریق دستور و تزریق آرگومان: رسیدن ورودی به مفسر فرمان سیستمعامل.
- آپلود فایل بدون محدودیت: بارگذاری وبشل، یا آپلود در مسیری که مفسر آن را اجرا میکند.
- تزریق SQL به سیستمعامل: از راه
xp_cmdshell،COPY TO PROGRAMیا نوشتن فایل در ریشهی وب.
«RCE همیشه از یک باگ در کدِ خودمان میآید، پس اگر کدمان تمیز باشد در امانیم.» امروز بزرگترین سبب RCE در وب، CVE شناختهشده در کتابخانهها و اجزای وصلهنشده است، نه کدِ خودِ برنامه. به همین دلیل OWASP در ۲۰۲۵ دستهی «نقصهای زنجیرهی تأمین نرمافزار» را به رتبهی A03 ارتقا داد. مدیریتِ وابستگی و وصله بهاندازهی کدِ امن اهمیت دارد.
سناریوی واقعی
یک پورتال سازمانی از یک کتابخانهی سریالسازی جاوا برای نگهداری وضعیت کاربر در کوکی استفاده میکند. تستر با ابزار ysoserial یک زنجیرهی گجت میسازد که هنگام readObject اجرا میشود، آن را base64 میکند و در کوکی میگذارد. سرور کوکی را بازسازی میکند و در همان لحظه دستور مهاجم اجرا میشود. تستر با یک دستور بیضرر (مثلاً درخواست DNS به Collaborator) وجود RCE را اثبات میکند — بدون آنکه سرویس را مختل کند یا دادهای بردارد. این تفاوت یک PoC مسئولانه با یک حملهی واقعی است.
در سمتِ مهار، همین سناریو نشان میدهد چرا دفاعِ لایهای مهم است: اگر حساب برنامه کمامتیاز اجرا میشد، اگر خروجیِ شبکه فیلتر بود و اگر ثبتِ رخداد کافی وجود داشت، همان RCE هم برد و اثرِ کمتری داشت و زودتر کشف میشد.
چگونه در تست نفوذ کشف و اثبات میشود
روال حرفهای:
- ابتدا اثرانگشت پشته: نسخهی دقیق فریمورک، سرور و کتابخانهها را با شناسایی مشخص کنید و با پایگاههای CVE مطابقت دهید.
- نقاطی که ورودی به مفسر، موتور قالب یا سریالسازی میرسد را جدا کنید.
- برای متغیرهای کور، از تشخیص کانالجانبی (تأخیر زمانی، DNS به Collaborator) استفاده کنید — همان اصلی که در SSRF و تزریق دستور کور به کار میرود.
- PoC را حداقلی و غیرمخرب نگه دارید؛ هدف اثبات اجرای کد است، نه بهرهبرداری کامل.
ابزارهایی مثل Nuclei برای تشخیص CVEهای شناختهشده و Metasploit برای بهرهبرداری از CVE پشته به کار میآیند، اما بخش زیادی از کشف RCE هنوز کار دستی است.
نمونهی فنی
الگوی مفهومیِ کشف تزریق دستورِ کور با تأخیر زمانی — نه یک اکسپلویت کامل:
GET /ping?host=127.0.0.1;sleep+10 HTTP/1.1
Host: app.example.comاگر پاسخ حدود ۱۰ ثانیه دیرتر بیاید، احتمال اجرای فرمان جدی است و باید با اثبات کانالجانبی تأیید شود.
ارتباط با OWASP و CWE
RCE یک دستهی مستقل OWASP نیست بلکه پیامد چند دسته است: A05:2025 تزریق (تزریق دستور، CWE-94 تزریق کد)، A08 نقص یکپارچگی (Deserialization، CWE-502)، و A03 نقصهای زنجیرهی تأمین (CVE اجزا). در CWE Top 25 سال ۲۰۲۵، CWE-94 در رتبهی ۱۰ و CWE-78 (تزریق دستور سیستمعامل) در رتبهی ۹ قرار دارند.
پرسشهای متداول
تفاوت RCE با تزریق دستور چیست؟
تزریق دستور یکی از مسیرهای رسیدن به RCE است. RCE مفهوم عامترِ «اجرای کد دلخواه روی سرور» است که میتواند از تزریق دستور، Deserialization، SSTI، آپلود فایل یا CVE اجزا حاصل شود.
شدیدترین پیامد RCE چیست؟
کنترل کامل سرور: خواندن و تغییر داده، ماندگاری، و حرکت جانبی به دیگر سامانههای شبکه. به همین دلیل RCE تقریباً همیشه با شدت Critical در CVSS امتیازدهی میشود.
امروز رایجترین علت RCE در وب چیست؟
سوءاستفاده از CVE شناختهشده در کتابخانهها و اجزای وصلهنشده. همین واقعیت باعث شد OWASP در ۲۰۲۵ دستهی «نقصهای زنجیرهی تأمین نرمافزار» را به رتبهی A03 ارتقا دهد.