
يحتوي هذا المستودع على محتوى هندسة كشف جاهز للإنتاج لـ **CVE-2025-25257**، وهي ثغرة حقن SQL قبل المصادقة في Fortinet FortiWeb Fabric Connector الإصدارات 7.0 حتى 7.6.x. يمكن أن يؤدي استغلالها بنجاح إلى تنفيذ تعليمات برمجية عن بُعد دون أي مصادقة مسبقة.
يوفر هذا المستودع محتوى هندسة الكشف الجاهز للإنتاج لثغرة CVE-2025-25257، وهي ثغرة حقن SQL دون مصادقة مسبقة في مكون FortiWeb Fabric Connector في الإصدارات 7.0 حتى 7.6.x. يمكن للاستغلال الناجح أن يؤدي إلى تنفيذ أوامر عن بُعد دون أي مصادقة مسبقة.
هذا المحتوى مخصص للاستخدام الدفاعي فقط. وهو مُوجّه لفرق عمليات الأمن (SOC)، ومهندسي الكشف، وصائدي التهديدات. لا يتضمن أي كود استغلال هجومي.
تؤثر CVE-2025-25257 على نقطة نهاية واجهة برمجة تطبيقات Fabric Connector /api/fabric/device/status في FortiWeb. يتم تمرير رأس Authorization مباشرةً في استعلام SQL دون تعقيم. يمكن للمهاجم غير المصادق حقن صيغة SQL في قيمة رمز Bearer للتلاعب بالاستعلام الأساسي، وتجاوز المصادقة، وفي بعض التكوينات تحقيق تنفيذ الأوامر عن بُعد من خلال تراكم الأوامر القائمة على SQL أو إمكانيات كتابة الملفات.
يمكن استغلال الثغرة عبر الشبكة دون الحاجة إلى بيانات اعتماد. ويمكن اكتشافها بسهولة في سجلات الوصول HTTP إذا كان جمع السجلات متاحًا.
يرسل المهاجم طلب HTTP GET مخصص إلى واجهة برمجة تطبيقات Fabric Connector. يحتوي رمز Bearer في رأس Authorization على SQL محقون. مثال على النمط:
Authorization: Bearer aaa' OR '1'='1
يتسبب ذلك في تقييم استعلام SQL الخلفي على أنه صحيح، متجاوزًا التحقق من الرمز. قد يتضمن الاستغلال الإضافي حقنًا قائمًا على UNION لقراءة البيانات أو استعلامات متراكمة لكتابة ملفات أو تنفيذ أوامر نظام التشغيل اعتمادًا على تكوين قاعدة البيانات والصلاحيات.
ما يلي مُوثّق لأغراض التحقق من صحة قواعد الكشف فقط.
GET /api/fabric/device/status HTTP/1.1
Host: <fortiweb-ip>
Authorization: Bearer aaa' OR '1'='1
تم ضبط قواعد الكشف في هذا المستودع لتحديد هذا النمط وأنماط الحقن المشابهة في سجلات HTTP وحركة المرور على الشبكة.
قواعد YARA موجودة في rules/yara/.
cve_2025_25257_http.yar - يكتشف أنماط الاستغلال في ملفات سجلات HTTP وحركة المرور الملتقطةcve_2025_25257_webshell.yar - يكتشف شيلات الويب التي قد تُنزل بعد الاستغلالcve_2025_25257_payload.yar - يكتشف أثر الحمولة الخام على القرصفحص سجلات الوصول HTTP:
yara -r rules/yara/cve_2025_25257_http.yar /var/log/fortiweb/
فحص جذر الويب بحثًا عن ملفات منزلة:
yara -r rules/yara/cve_2025_25257_webshell.yar /var/www/html/
فحص PCAP ملتقط:
yara rules/yara/cve_2025_25257_http.yar capture.pcap
تشغيل جميع القواعد بشكل متكرر على دليل:
yara -r rules/yara/ /path/to/scan/
استعلامات KQL موجودة في rules/kql/. كل ملف يستهدف فئة كشف محددة.
قواعد Sigma موجودة في rules/sigma/. يمكن تحويلها إلى أي تنسيق SIEM باستخدام sigma-cli أو pySigma.
التحويل إلى Splunk SPL:
sigma convert -t splunk rules/sigma/cve_2025_25257_sqli.yml
التحويل إلى Elastic EQL:
sigma convert -t elasticsearch rules/sigma/cve_2025_25257_sqli.yml
على واجهة سطر الأوامر لـ FortiWeb:
get system status | grep Version
المتأثر: 7.0.x حتى 7.6.0
المُصحَّح: 7.6.1 وما بعده
يمكن استخدام وكيل عكسي Nginx أساسي يحاكي نقطة النهاية المعرضة للثغرة لاختبار الكشف. لا حاجة لصورة FortiWeb فعلية للتحقق من الكشف القائم على السجلات.
# سحب حاوية المختبر الاختباري
docker run -d \
--name fortiweb-sim \
-p 8443:443 \
-v $(pwd)/src/lab/nginx.conf:/etc/nginx/nginx.conf:ro \
nginx:alpine
# إرسال طلب استغلال محاكاة
curl -k -H "Authorization: Bearer aaa' OR '1'='1" \
https://localhost:8443/api/fabric/device/status
سيُنتج ذلك إدخال سجل وصول يطابق أنماط الكشف في D-01.
بعد إرسال طلب الاختبار، تحقق من مخرجات السجل المحاكاة:
docker logs fortiweb-sim | grep "fabric/device/status"
النمط المتوقع لإدخال السجل:
"GET /api/fabric/device/status HTTP/1.1" 401 - "Bearer aaa' OR '1'='1"
تشغيل قاعدة YARA على السجل:
yara rules/yara/cve_2025_25257_http.yar /var/log/nginx/access.log
المخرجات المتوقعة:
CVE_2025_25257_SQLi_AuthHeader /var/log/nginx/access.log
cve-2025-25257-detection/
├── README.md
├── LICENSE
├── .gitignore
├── rules/
│ ├── yara/
│ │ ├── cve_2025_25257_http.yar
│ │ ├── cve_2025_25257_webshell.yar
│ │ └── cve_2025_25257_payload.yar
│ ├── kql/
│ │ ├── 01_web_exploitation.kql
│ │ ├── 02_process_spawn.kql
│ │ ├── 03_command_execution.kql
│ │ ├── 04_file_creation.kql
│ │ ├── 05_persistence.kql
│ │ ├── 06_config_modification.kql
│ │ └── 07_threat_hunting.kql
│ ├── sigma/
│ │ ├── cve_2025_25257_sqli.yml
│ │ └── cve_2025_25257_process_spawn.yml
│ └── splunk/
│ ├── web_exploitation.spl
│ └── process_anomaly.spl
├── docs/
│ ├── iocs.md
│ ├── mitre_attack.md
│ └── false_positive_analysis.md
├── src/
│ ├── poc.py
│ └── lab/
│ └── nginx.conf
└── sysmon/
└── sysmon_config_snippet.xml
تم توفير هذا المستودع لأغراض دفاعية وتعليمية فقط. جميع محتويات الكشف تهدف إلى مساعدة فرق الأمن في تحديد ومحاولات الاستغلال والاستجابة لها. لا تستخدم أي محتوى من هذا المستودع ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها.
هذا المشروع مرخص بموجب رخصة MIT. انظر LICENSE للحصول على التفاصيل.
| الحقل | التفاصيل |
|---|
| CVE | CVE-2025-25257 |
| EDB-ID | 52473 |
| المنتج | Fortinet FortiWeb |
| الإصدارات المتأثرة | 7.0.x حتى 7.6.x |
| نوع الثغرة | حقن SQL دون مصادقة مسبقة يؤدي إلى تنفيذ أوامر عن بُعد |
| ناقل الهجوم | نقطة نهاية HTTP API (بدون مصادقة) |
| المصادقة المطلوبة | لا شيء |
| درجة CVSS | 9.8 (حرجة) |
| التصحيح متاح | نعم، الترقية إلى 7.6.1 أو أحدث |
| تاريخ النشر | 2026-02-04 |
| الباحث | Milad Karimi (Ex3ptionaL) |
| المعرف | الفئة | طريقة الكشف | المصدر | مستوى التغطية |
|---|
| D-01 | استغلال طلب ويب | نمط SQLi في رأس Authorization | سجلات الويب/الوكيل، WAF | عالي |
| D-02 | استغلال طلب ويب | طلبات إلى /api/fabric/device/status بدون رمز صالح | سجلات الويب | عالي |
| D-03 | شذوذ تنفيذ العملية | عملية شيل تنشأ من عملية خادم الويب | EDR / Sysmon | عالي |
| D-04 | شذوذ تنفيذ العملية | sh، bash، python كعملية فرعية لـ nginx أو httpd | EDR | عالي |
| D-05 | إنشاء ملف مشبوه | كتابة شيل ويب في جذر ويب FortiWeb | EDR / تكامل الملفات | متوسط |
| D-06 | إنشاء ملف مشبوه | وجود ملفات .php، .jsp، .py غير متوقعة في أدلة الويب | مراقبة الملفات | متوسط |
| D-07 | آلية الثبات | تعديل مهمة cron بعد الاستغلال | EDR / Auditd | متوسط |
| D-08 | آلية الثبات | إنشاء حساب مسؤول جديد عبر API بعد حقن SQL | سجلات API / المصادقة | عالي |
| D-09 | نشاط الحاوية | عملية غير طبيعية في مساحة اسم حاوية FortiWeb | وقت تشغيل الحاوية | متوسط |
| D-10 | صيد التهديدات | انحراف خط الأساس في معدل استدعاء API لـ Fabric Connector | SIEM / التحليلات | متوسط |
| D-11 | صيد التهديدات | عناوين IP المصدر تُظهر أنماط 200/403 متكررة إلى /api/fabric/ | سجلات الويب | عالي |
| D-12 | التلاعب بالتكوين | تغييرات في ملفات تكوين FortiWeb بعد طلب ويب | تكامل الملفات / EDR | عالي |
| D-13 | التلاعب بالتكوين | كتابات غير متوقعة إلى /data/ أو /etc/ على الجهاز | Auditd / EDR | متوسط |
| الملف | الوصف |
|---|
01_web_exploitation.kql | أنماط حقن SQL في رأس Authorization |
02_process_spawn.kql | عمليات فرعية غير طبيعية من خادم الويب |
03_command_execution.kql | سلاسل تنفيذ أوامر مشبوهة |
04_file_creation.kql | كتابة ملفات غير متوقعة في أدلة الويب |
05_persistence.kql | مؤشرات آلية الثبات |
06_config_modification.kql | التلاعب بملفات التكوين |
07_threat_hunting.kql | استعلام صيد تهديدات متقدم |