mamad
mamad
خواندن ۴ دقیقه·۸ ماه پیش

آسیب پذیری OS-Command Injection (تزریق فرمان سیستم‌عامل) چیست؟

os-command-injection-1
os-command-injection-1

تزریق فرمان سیستم(os-Command Injection) چیه؟

آسیب پذیری Command Injection که با نام تزریق شل یا Shell Injection نیز شناخته میشود، یک آسیب پذیری وب است که به مهاجم اجازه میدهد دستورات سیستم عامل (OS) دلخواه خود را روی سروری اجرا کند که یک وب اپلیکیشن روی آن قرار دارد. این حمله در صورت موفقیت، معمولاً باعث هک شدن کامل اپلیکیشن و تمام داده های آن میشود. بسیاری اوقات، یک مهاجم میتواند با استفاده از این آسیب پذیری، به بخشهای دیگر زیرساخت میزبان نیز دسترسی پیدا کند؛ مهاجم برای این کار روابط و اتصالات مورد اعتماد در زیرساخت را اکسپلویت میکند تا بتواند حمله را به دیگر سیستم های داخل سازمان نیز گسترش دهد – کاری که اصطلاحاً به آن Pivot کردن حمله میگویند

نکته مهم این است که باگ Command Injection اصلاً به دلیل ضعف سیستمعامل نیست، بلکه برنامهنویسها با اشتباهات برنامهنویسی راه را برای هکرها و انجام تزریق Command OS هموار میکنند. هکر ابتدا به دنبال ورودیهای کاربری آسیبپذیر در صفحه وب یا برنامه وب میگردد چون بدین ترتیب میتواند مستقیم وارد کوئری Command OS شود. پس از اینکه هکر این ورودی را وارد میکند، دستورات سیستمعامل مخرب در دیتابیس اجرا میشود. در Command Injection امکان اجرای دستورات مخرب فراهم میشود. این استیتها کنترل دیتابیس سرور پشت برنامه وب را به دست میگیرند. هکرها از Command Injection استفاده میکنند تا به صفحه وب، برنامه وب و بازیابی محتوای کل دیتابیس SQL دست یابند تا بتوانند رکوردهای دیتابیس را اضافه و اصلاح و حذف کنند.


۱ - مثال ساده: فرض کنید یک وبسایت دارای فرم جستجو باشد که کاربر میتواند در آن عبارتی را جستجو کند. اگر وبسایت از ورودی کاربر بدون اعتبارسنجی به عنوان پارامتر برای دستورات سیستمعامل استفاده کند، مهاجم میتواند دستورات خط فرمان را تزریق کند. مثلاً:

  1. search_query = "cat /etc/passwd"
    این دستور، محتوای فایل /etc/passwd را به مهاجم نشان میدهد.
  2. مثال با استفاده از فرمها: فرض کنید یک وبسایت دارای فرم ثبتنام باشد که کاربران میتوانند نام کاربری و رمز عبور خود را وارد کنند. اگر وبسایت از ورودی کاربر بدون اعتبارسنجی برای اجرای دستورات سیستمعامل استفاده کند، مهاجم میتواند دستورات خط فرمان را تزریق کند. مثلاً:
  3. username = "myuser; rm -rf /"
    password = "mypassword"
    این دستور، دستور rm -rf / را اجرا میکند و تمام محتوای سرور را حذف میکند.

آسیبپذیری Command Injection بهتنهایی ضرر خاصی برای سامانه به دنبال نداشته باشد، اما در مجاورت و همجواری با سایر آسیبپذیریها، میتواند به مهاجم دسترسی مستقیم به خط فرمان سامانهها را فراهم کن.


یه مثال دیگه:
۲- مثال : استفاده از نام فایل به عنوان آرگومان دستور: فرض کنید یک برنامه به کاربران اجازه میدهد محتوای یک فایل را مشاهده کنند، بدون امکان تغییر یا حذف آن. این برنامه با دسترسی root اجرا میشود:

  1. int main(char* argc, char** argv) {
    char cmd[CMD_MAX] = "/usr/bin/cat ";
    strcat(cmd, argv[1]);
    system(cmd);
    }
    اگر مهاجم به جای نام فایل، رشتهای مانند " ;rm -rf /" را وارد کند، دستور system() اجرا نمیشود و سیستم عامل به حذف بازگشتی پارتیشن ریشه میپردازد.
  2. مثال ۲: تغییر متغیر محیطی APPHOME: کد زیر مسیر نصب یک برنامه را با استفاده از متغیر محیطی $APPHOME تعیین میکند و اسکریپتی را در آن مسیر اجرا میکند:
  3. char* home = getenv("APPHOME");
    char cmd[CMD_MAX];
    snprintf(cmd, CMD_MAX, "%s/run_script.sh", home);
    system(cmd);
    اگر مهاجم مقدار $APPHOME را به " ;rm -rf /" تغییر دهد، دستور system() باعث حذف بازگشتی پارتیشن ریشه میشود.

نکته: همیشه ورودیهای کاربری را به درستی اعتبارسنجی کنید تا از تزریق فرمان جلوگیری کنید


بهترین راهها برای محافظت از وبسایت خود در برابر تزریق فرمان عبارتند از:

  1. اعتبارسنجی ورودیها:همیشه ورودیهای کاربری را به درستی اعتبارسنجی کنید.
    از اعتبارسنجی ورودی استفاده کنید تا کدهای مخرب را قبل از پردازش توسط سرور بررسی کنید.
  2. استفاده از فایروال برنامههای وب (WAF):نصب یک فایروال برنامههای وب (WAF) که کدهای مخرب را فیلتر میکند.
    WAF میتواند از حملات مانند تزریق SQL و اسکریپت بین سایتی محافظت کند.
  3. محدود کردن آپلود فایل:اجازه آپلود مستقیم فایلها را محدود کنید.
    فایلهای آپلود شده را اسکن کنید تا از ویروسها و کدهای مخرب محافظت کنید.
  4. تقویت رمز عبور:از رمزهای عبور قوی استفاده کنید و آنها را بهروز نگه دارید.

با انجام این اقدامات احتیاطی، میتوانید به محافظت از وبسایت خود در برابر تزریق فرمان و سایر حملات مبتنی بر تزریق کمک کنید منو فالو کن یا حق.

follow me instagram:)


command injectionامنیت سایبریتزریق کدبهینه سازی وب سایتدیباگ
علاقه به امنیت سایبری و باگ هانتر
شاید از این پست‌ها خوشتان بیاید