مضى على الشبكة و يوم من العطاء.
  • تحذير: يجب على كل روّاد الشبكة تشغيل برامج الاختراق داخل الأنظمة الوهمية وهي بهدف التعلم وحماية الأعضاء والتوعية بها

[ WalkTh ] فهم و اكتشاف و استغلال الـ Command Injection ـ ( Command Injection )

3b0-0d3b0-0d is verified member.

{ || مشرف قسم CTF || }
.:: طاقم المشرفين ::.

السمعة:

1700519305763.png


Command Injection
3827
فكرة الـ Command Injection إنها بتعتمد على استغلال سلوك التطبيق عشان نشغل أوامر على نظام التشغيل، بنستخدم نفس الصلاحيات اللي التطبيق مستخدمها على الجهاز.

راح يكون الحكي عن اربعه مواضيع :

1. ما هي الـ Command Injection
2. اكتشاف الـ Command Injection
3. استغلال الـ Command Injection

4. الـ Command Injection


الاسئله من TryHackMe | Command Injection
هذه الروم تتطلب اشتراك ⚠️


ما هي الـ Command Injection


سيناريو ..

لو كان في خادم ويب اسمه جو، لما نستخدم حقن الأوامر على الخادم بنقدر نشغل الأوامر بصلاحيات جو، يعني إننا بنوخذ صلاحيات جو.


حقن الأوامر تسمى أيضاً تنفيذ الشيفرة عن بعد لأنها تسمح للمهاجم بتنفيذ الشيفرة عن بعد في التطبيق. هيك المهاجم بكون عنده القدرة على التفاعل المباشر مع النظام اللي فيه الثغرة. ممكن يقرأ ملفات النظام أو ملفات المستخدمين أو حتى يتحكم في البيانات.

من الجدير بالذكر إن الـ Command Injection كانت
  1. واحدة من أهم عشر ثغرات تم الإبلاغ عنها في تقرير Contrast Security’s لأمان تطبيقات الويب في عام 2019.
  2. إطار OWASP دائمًا بذكر ثغرات من هذا النوع ضمن أهم عشر ثغرات في تطبيقات الويب.


اكتشاف الـ Command Injection


في كتير برامج وتطبيقات بتستخدم لغات برمجة زي PHP و Python و NodeJS عشان تنقل بيانات وتعمل أوامر على نظام التشغيل اللي بشتغل عليه الجهاز.

سيناريو

لو كان في برنامج بوخد اسم سوره من القرآن من المستخدم عن طريق حقل إسمه title$ وبستخدمها عشان يدور في ملفات النظام عشان يلاقي سوره بناءً على العنوان اللي المستخدم دخله

3750
هاي طريقه كيف بتعامل المسخدم مع النظام ..

شرح :

  1. بخزن الملفات في مكان معين على النظام
  2. بخزن اللي المستخدم بدخله في متغير اسمه title$
  3. بناءً على الاسم اللي دخله المستخدم يتم تنفيذ امر grep عشان يحث عن اسم السوره بملف نصي اسمه songtitle.txt
  4. بعطيك نتيجه انه موجوده ال سوره ولا لا
في مجال لاستغلال هاي الثغره مثلا بدال ما يستخدموا grep عشان يدوروا في songtitle.txt ممكن يجبرو البرنامج على قراءه ملفات من النظام

بغض النظر عن لغة البرمجة اللي البرنامج مكتوب فيها. المهم إن البرنامج بقبل البيانات وبنفذها، هاد الاشي يؤدي لحدوث Command Injection.


اسئلة :


استغلال الـ Command Injection


مثال على الاستغلال

لو المستخدم دخل & او && ممكن انه يدمج اكثر من امر ويشغلهم مع بعض

فيه نوعين ل تكتشف الـ Command Injection
  1. الـ Blind command injection
  2. الـ Verbose command injection

شرح ..
النوعالوصف
Blind عندما لا يكون هناك إخراج مباشر من التطبيق عند اختبار الـ payloads. ستحتاج إلى استكشاف سلوك التطبيق لتحديد ما إذا كان أمرك ناجحًا أم لا.
Verboseنوع هذا الاختراق هو عندما يتوفر تغذية مباشرة من التطبيق بمجرد اختبار أمر معين. على سبيل المثال، تشغيل أمر “whoami” لمعرفة المستخدم الذي يعمل تحته التطبيق، وسيتم عرض اسم المستخدم على الصفحة مباشرة.

1. الكشف عن الـ Blind command injection

عشان تكشف عن الهجوم زي هاد لازم تستخدم بيانات بتسبب تأخير في الرد
مثلاً أوامر زي ping و sleep عشان نشوف كيف الموقع بتجاوب مع الأوامر هاي. مثل 👇
لإيقاف التنفيذ لفترة زمنية محددة.

3754


وفي طرق اخرى بنقدر نستخدمها عشان نكشف عن الهجوم مثلا بنستخدم علامات زي > عشان نجبر الموقع يرد بمعلومات. مثلاً بنقدر نخلي الموقع ينفذ أوامر زي whoami ويحط النتيجة في ملف، وبعدين بنقدر نقرأ الملف الذي تم انشائه. مثل 👇

3753

وفي طرق اخرى بنقدر نستخدمها عشان نكشف عن الهجوم مثلا بنستخدم أمر curl. هاد عشان نرسل بيانات من وإلى الموقع باستخدام الأمر هاد. مثلا في الكود التالي، بنستخدم curl عشان نرسل بيانات إلى الموقع باستخدام الأمر هاد لفحص إذا كان هناك هجوم بحقن الأوامر أو لا.

كود:
curl http://vulnerable.app/process.php%3Fsearch%3DThe%20Beatles%3B%20whoami
الشرح:
الـ curl هو أمر يُستخدم لإرسال طلبات HTTP إلى مواقع الويب. في هذا المثال، نرسل طلبًا إلى vulnerable.app، وهو موقع مستهدف للاختبار.

ما يحدث:
بنحدد ملف process.php على الموقع، وبنمرر له معلمة search بـ The Beatles; whoami مع ترميز النص للتناسب مع العنوان URL.
إذا كان في ثغرة Command Injection في process.php، فإن هذا النص يمكن أن يؤدي إلى تنفيذ الأمر whoami على الخادم.



2. الكشف عن الـ Verbose command injection
مثلاً لو سويت أمر زي ping أو whoami ، البرنامج رح يعرض النتائج مباشرة على شاشة التطبيق.
بعض الأوامر اللي بتقدر تستخدمها لاختبار النظام إذا كان يعاني من هذه الثغرة



linux
الأمرالوصف
whoamiتعرّف مين المستخدم اللي التطبيق بعمل تحته.
lsعرض محتوى المجلد الحالي.
pingيسبب تجميد التطبيق ويمكن استخدامه لاختبار الثغرة.
sleepمفيد أيضًا لاختبار الثغرة إذا ما كان الـ ping مثبت.
ncيمكن استخدامه لإنشاء ريفيرس شل عكسي على التطبيق الضعيف.


Windows
الأمرالوصف
whoamiيُظهر المستخدم الذي يعمل التطبيق تحته.
dirيستعرض محتوى المجلد الحالي.
pingيسبب تجميد التطبيق ويمكن استخدامه لاختبار الثغرة.
timeoutيسبب تجميد التطبيق أيضًا ويمكن استخدامه لاختبار الثغرة إذا لم يتم تثبيت الأمر ping.


اسئلة :

مثال عملي عال Command Injection

عند فتح صفحه التحدي تجد مربع ادخال

عند ادخال ip نجد هذه الصفحه :


image
عند تجربه اضافه امر ثاني ip && ls جاوب عالامرين

image
لحل السؤال ومعرفه المستخدم نستخدم الأمر:
ip && whoami
image
لحل السؤال الاخير نقرأ الملف المطلوب بالسوال عن طريق الامر التالي 👇
كود:
ip  && cat /home/tryhackme/flag.txt

image

image
 
التعديل الأخير بواسطة المشرف:
السلام عليكم اريد معرفة كيفية تقليص حجم الكود ولنكن في الصوره هذا هو الكود
كود:
a</br></div><iframe src="javascript:alert(1)"></iframe><!--
 
التعديل الأخير:
السلام عليكم اريد معرفة كيفية تقليص حجم الكود ولنكن في الصوره هذا هو الكود
كود:
a</br></div><iframe src="javascript:alert(1)"></iframe><!--




كود:
<a></a><iframe src="javascript:alert(1)"></iframe>
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى