
يُنشئ صفحة تشغيل HTML ذاتية الإرسال تستغل حقن HTML المنعكس في تسجيل دخول ووردبريس (CVE-2026-64638) لعرض لافتة مخصصة، لأغراض اختبار الأمان المصرح به.
مولّد PoC بملف واحد وبدون تبعيات لثغرة WordPress CVE-2026-64638
حقن HTML المنعكس في wp-login.php (فارق strip_tags() مقابل محلل KSES).
ينتج صفحة تشغيل ذاتية الإرسال: عندما يفتح الضحية الملف، تقوم الصفحة بصمت بإرسال حمولة الحقن عبر POST ويهبط الضحية مباشرة على صفحة تسجيل الدخول المستهدفة مع عرض لافتة — بدون أي تفاعل، وبدون JavaScript على الجانب المستهدف.
لأغراض الاختبار الأمني المصرح به فقط. استخدمه فقط ضد أنظمة تملكها أو لديك إذن صريح لاختبارها.
| الإصدارات | الحالة |
|---|
| 6.4.0 – 7.0.2 | قابلة للاستغلال — تعمل مباشرة دون إعدادات |
| 5.8 – 6.3 | مشروطة — تتطلب إضافة تمرر login_errors عبر wp_kses() مع السماح بـ style |
| 4.7 – 5.7 | غير قابلة للاستغلال (اسم المستخدم لا ينعكس) |
| 6.4.9 / 6.5.9 / 6.6.6 / 6.7.6+ / 6.8.7 / 6.9.6 / 7.0.3+ | تم إصلاحها (esc_html) |
python3 banner_poc.py \
--out trigger.html \
--target http://192.0.2.10/wp-login.php \
--msg "Scheduled System Maintenance"
# مسار فرعي + مسار تسجيل دخول مخفي + سطر فرعي
python3 banner_poc.py \
--out trigger.html \
--target http://10.0.0.5:8080/blog/my-secret-login \
--msg "Please sign in again" --sub "Session expired"
استضف trigger.html في أي مكان. عندما يفتحه الضحية، يتم إعادة توجيهه إلى
صفحة تسجيل الدخول المستهدفة مع عرض اللافتة. القفزة صامتة: لا يوجد محتوى
وسيط مرئي، الخلفية تطابق شاشة تسجيل دخول WordPress، وتتم في حوالي 0.5 ثانية.
| العلامة | الوصف |
|---|---|
--out | ملف HTML الناتج (مطلوب) |
--target | رابط صفحة تسجيل الدخول الكامل — يشمل المسارات الفرعية / مسارات تسجيل الدخول المخفية (مطلوب) |
--msg | نص اللافتة (الافتراضي: Scheduled System Maintenance) |
--sub | سطر فرعي اختياري |
wp-login.php اسم مستخدم فشل تسجيل الدخول في رسالة الخطأ.
تقوم الإصدارات القابلة للاستغلال بتنظيفه باستخدام PHP strip_tags()، والتي تمرر
أي شيء حيث يتبع < بمسافة بيضاء.< div style="..."> كعنصر حقيقي.< /strong> (شرطة مائلة مسبوقة بمسافة) ينجو أيضًا من strip_tags() ويتم
إعادة بنائه كوسم إغلاق حقيقي، مما يسمح للحمولة بإغلاق <strong> الخاص بالقالب
(عنصر تنسيق نشط في HTML5) كأول رمز لها والاحتفاظ بتحكم دقيق في DOM.div زائدة غير مغلقة بحجم صفري خارج الشاشة تبتلع النص الختامي للقالب
("… is not registered on this site …").class تنجو من
safecss_filter_attr(). على الإصدارات 6.3+ / 6.4+ يعرض position:fixed طبقة
تغطي الصفحة بالكامل؛ على 5.8–6.2 يتم تجريد هذه الخصائص وتتحول نفس الحمولة
تلقائيًا إلى لافتة حمراء ضمن التدفق.HTML/CSS نقي — لا يتم تنفيذ أي JavaScript على الهدف. قواعد WAF التي تستهدف
<script> أو معالجات الأحداث لا تنطبق.
نُشرت هذه الأداة لأغراض البحث الدفاعي واختبار الاختراق المصرح به. المؤلف غير مسؤول عن سوء الاستخدام.