
يحتوي هذا المستودع على سكربتين لإثبات المفهوم (PoC) لثغرة CVE-2025-57819 في FreePBX: الأولى لإنشاء مستخدم مدير جديد (poc_admin.py)، والأخرى لاستخراج بيانات الاعتماد باستخدام sqlmap (poc_auto_get_username_pass.py). للاستخدام التعليمي والمصرح به فقط.
يحتوي هذا المستودع على سكربتَي إثبات مفهوم (PoC) مكتوبَين بلغة بايثون يستهدفان CVE-2025-57819، وهي ثغرة حقن SQL بدون مصادقة وخطيرة في FreePBX.
CVE-2025-57819 تؤثر على إصدارات متعددة من FreePBX وتسمح للمهاجمين عن بُعد بدون مصادقة بتنفيذ استعلامات SQL عشوائية عبر معامل مُعرَّض للثغرة في admin/ajax.php.
يعود سبب الثغرة إلى عدم كفاية تعقيم المدخلات في نقطة النهاية module=FreePBX\modules\endpoint\ajax، مما يسمح بحقن SQL مباشر في استعلامات الخلفية.
| الإصدار |
|---|
| الملف | الوصف |
|---|---|
poc_admin.py | إنشاء مستخدم مسؤول جديد عبر حقن SQL خام |
poc_auto_get_username_pass.py | أتمتة الاستخراج الجماعي لبيانات الاعتماد باستخدام sqlmap على أهداف متعددة |
poc_admin.py – إضافة مستخدم مسؤوليرسل هذا السكربت استعلام SQL مُصمَّمًا خصيصًا لإنشاء مستخدم مسؤول جديد في FreePBX.
requests (pip install requests)python3 poc_admin.py http://target/
[+] Creating admin user: orange0Mint_k9l3zq / X9sfL30wlKp1
[+] Done. Try logging in at: http://target/admin/config.php
[+] Credentials -> Username: orange0Mint_k9l3zq | Password: X9sfL30wlKp1
poc_auto_get_username_pass.py – تفريغ بيانات الاعتماد عبر SQLMapيستخدم هذا السكربت sqlmap لاستخراج أسماء المستخدمين وتجزئات كلمات المرور من جدول ampusers المُعرَّض للثغرة عبر أهداف متعددة.
sqlmap مستنسخة محليًا باسم sqlmap-master/يجب أن يكون كل سطر في الملف عنوان URL أساسيًا:
http://192.168.1.100/
http://pbx.example.com:8080/
python3 poc_auto_get_username_pass.py targets.txt
log/target.txtstop.txt--batch و--ignore-code=404 في SQLMapستُحفظ جميع نتائج sqlmap داخل دليل log/، بأسماء تستند إلى المضيف الهدف:
log/
├── 192.168.1.100.txt
├── pbx.example.com_8080.txt
/admin/ajax.phpإثبات المفهوم هذا مُقدَّم لأغراض تعليمية واختبار اختراق مصرّح به فقط.
لا تستخدم هذا الكود ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.
المؤلف غير مسؤول عن إساءة الاستخدام أو الأضرار الناتجة عن هذا السكربت.
orange0Mint
GitHub: https://github.com/orange0Mint
| الحالة |
|---|
| ≤ 15.0.65 | متأثر |
| ≤ 16.0.88 | متأثر |
| ≤ 17.0.2 | متأثر |
| ≥ 15.0.66 | مصحّح |
| ≥ 16.0.89 | مصحّح |
| ≥ 17.0.3 | مصحّح |