
استشارة تفصّل ثغرة XSS منعكسة في نظام إدارة الفعاليات PuneethReddyHC الإصدار 1.0، بما في ذلك تحليل الأثر وخطوات إعادة الإنتاج وتوصيات التخفيف.
العنوان: Cross-Site Scripting (XSS) منعكس عبر معامل event_id في register.php
البائع / المستودع: PuneethReddyHC / event-management
الإصدار المتأثر: 1.0 (الفرع/الوسم master وقت الاختبار)
المُبلّغ: Hafiz Pradana Gemilang
حالة الإفصاح: تم إخطار البائع بشكل خاص — تم حجب PoC الاستغلالي لسلامة المستخدمين.
سيتم تحديث الحالة والجدول الزمني بعد التنسيق أو إصدار التصحيح.
تم تحديد ثغرة Cross-Site Scripting (XSS) منعكسة في register.php، حيث لا يتم تعقيم معامل GET event_id بشكل صحيح قبل انعكاسه في مخرجات الصفحة.
يمكن لمهاجم عن بُعد إنشاء رابط ضار ينفذ JavaScript عشوائيًا في متصفح الضحية بمجرد زيارته للرابط أو إعادة توجيهه إليه.
⚠️ يتعمد هذا التقرير حذف حمولة استغلال نشطة. تم توفير إثبات المفهوم الكامل للبائع بشكل خاص لتطوير التصحيح.
/register.php?event_id=<value>
مثال (اختبار محلي):
http://<host>/event-management-master/register.php?event_id=1
الاستغلال الناجح يسمح بتنفيذ JavaScript عشوائي في سياق النطاق المتأثر.
العواقب المحتملة:
HttpOnly)تقدير CVSS v3.1: 6.1 (متوسط) — AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N
event_id.تمت مشاركة الحمولة الكاملة وإثبات المفهوم بشكل خاص مع البائع.
إذا كنت المشرف وتحتاج إلى الوصول، يرجى الاتصال بالمُبلّغ (انظر أدناه).
قم بتطبيق التحقق من صحة الخادم وترميز المخرجات لمنع XSS المنعكس.
التحقق من صحة الإدخال
إذا كان event_id رقميًا، فرض التحقق الرقمي:
$event_id = filter_input(INPUT_GET, 'event_id', FILTER_VALIDATE_INT);
if ($event_id === false) {
// handle invalid input
}
ترميز المخرجات
قم بترميز البيانات المقدمة من المستخدم قبل طباعتها في HTML:
echo htmlspecialchars($event_id, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
استخدام أطر عمل أو قوالب آمنة
يُفضل استخدام أطر عمل تقوم تلقائيًا بالترميز المدرك للسياق.
ملفات تعريف الارتباط الآمنة
قم بتعيين علامات HttpOnly وSecure وSameSite على ملفات تعريف ارتباط الجلسة.
سياسة أمان المحتوى (CSP)
قم بتطبيق CSP صارم وتجنب استخدام unsafe-inline.
مراجعة الكود والتدقيق
تحقق من جميع المعاملات المنعكسة الأخرى في جميع أنحاء التطبيق.
// Validate numeric input
$event_id = filter_input(INPUT_GET, 'event_id', FILTER_VALIDATE_INT);
if ($event_id === false || $event_id === null) {
$event_id = 0; // or display an error / redirect
}
// Safe output
?>
<span id="event-id"><?= htmlspecialchars($event_id, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?></span>
<?php
htmlspecialchars(): https://www.php.net/manual/en/function.htmlspecialchars.phpتم الإبلاغ بواسطة: Hafiz Pradana Gemilang
يحذف هذا التقرير كود الاستغلال التفصيلي لحماية مستخدمي البرنامج المتأثر.
التفاصيل الفنية الكاملة متاحة للبائع أو المنسقين المصرح لهم عند الطلب بموجب شروط الإفصاح المسؤول.