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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-2002-poc — CVE-2026-2002 تقرير وإثبات المفهوم | Kitploit
أدوات/GitHubGitHub/typedefabcd1234ntd/cve-2026-2002-poc
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبأمن الويبالتعلم والتعليم
GitHubtypedefabcd1234ntd/cve-2026-2002-poc

CVE-2026-2002-poc

CVE-2026-2002 تقرير وإثبات المفهوم

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

الأكثر شعبية

عرض الكل →

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

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

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

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

ملخص

إضافة Forminator Forms – Contact Form, Payment Form & Custom Form Builder لـ WordPress عرضة لـ Stored Cross-Site Scripting عبر معامل form_name في جميع الإصدارات حتى 1.50.2، وذلك بسبب عدم كفاية تنظيف المدخلات وهروب المخرجات. هذا يتيح للمهاجمين الموثقين، بصلاحيات مستوى المشرف، حقن نصوص برمجية عشوائية في الصفحات التي سيتم تنفيذها كلما وصل مستخدم إلى صفحة محقونة. الإضافة تسمح للمشرفين بإعطاء صلاحيات إدارة النماذج للمستخدمين ذوي المستوى الأدنى، مما قد يجعل هذا قابلاً للاستغلال بواسطة مستخدمين مثل المشتركين.

السبب الجذري

السبب الجذري يحتاج إلى دقة في الوعي بثغرة المنطق: (هذه الدالة في الملف /fields/html.php)

root@kitploit:~
public function markup( $field, $views_obj ) {
        $settings = $views_obj->model->settings;

        $html    = '';
        $label   = esc_html( self::get_property( 'field_label', $field ) );
        $id      = self::get_property( 'element_id', $field );
        $form_id = false;

        $html .= '<div class="forminator-field forminator-merge-tags" data-field="' . $id . '">';

        if ( $label ) {

            $html .= sprintf(
                '<label class="forminator-label">%s</label>',
                self::convert_markdown( $label )
            );
        }

            // Check if form_id exist.
        if ( isset( $settings['form_id'] ) ) {
            $form_id = $settings['form_id'];
        }

        // To allow iframes in content.
        add_filter( 'wp_kses_allowed_html', array( 'Forminator_Core', 'add_iframe_to_kses_allowed_html' ) );
        $content = wp_kses_post( self::get_property( 'variations', $field ) );  // root cause here
        remove_filter( 'wp_kses_allowed_html', array( 'Forminator_Core', 'add_iframe_to_kses_allowed_html' ) );

        $html .= forminator_replace_variables(
            $content,
            $form_id
        );

        $html .= '</div>';

        return $html;
    }

هذا الكود يستخدم دالة تنظيف (wp_kses_post) لحماية XSS من المستخدم ذي الصلاحية المنخفضة، لكن المشكلة هي أنها تنظف قبل استبدال المتغيرات. كنتيجة لذلك، يمكن للمهاجم ذي الصلاحية المناسبة استخدام وسوم HTML صالحة لتجاوز wp_kses_post وحقن حمولة JavaScript في المتغيرات من أجل تشغيل XSS.

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

المهاجم ذو صلاحية تحرير النموذج يمكنه إدراج HTML في حقل HTML بالشكل التالي

root@kitploit:~

ثم تغيير form_name إلى

root@kitploit:~
javascript:alert(1) or javascript:<حمولة>

الخطورة

النتيجةالخطورةالإصدارسلسلة المتجهات
4.4متوسطة3.1CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:L/A:N

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

ملاحظة

إذا كنت تتفاعل مع هذا النوع من البحث وتريد دعم المزيد من التنقيب، يمكنك التبرع ودعمي. أقدر مساهمتك.

╰(°▽°)╯

تنزيل الأداة