Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-3844-Lab — مختبر Docker محلي لإعادة إنتاج CVE-2026-3844، رفع ملف تعسفي غير مصادق عليه إلى RCE في إضافة WordPress Breeze Cache. يقارن الإصدار الضعيف 2.4.4 مع الإصدار المصحح 2.4.5 باستخدام خدمات معزولة و PoC بأقل ضرر. | Kitploit
أدوات/GitHubGitHub/rootdirective-sec/cve-2026-3844-lab
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبCTFالتعلم والتعليممختبرات وتدريب عملي
GitHubrootdirective-sec/cve-2026-3844-lab

CVE-2026-3844-Lab

مختبر Docker محلي لإعادة إنتاج CVE-2026-3844، رفع ملف تعسفي غير مصادق عليه إلى RCE في إضافة WordPress Breeze Cache. يقارن الإصدار الضعيف 2.4.4 مع الإصدار المصحح 2.4.5 باستخدام خدمات معزولة و PoC بأقل ضرر.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-3844 — مختبر رفع الملفات التعسفي غير المصادق عليه إلى تنفيذ الأوامر عن بُعد (RCE) في Breeze Cache

مختبر Docker محلي فقط لإعادة إنتاج ومقارنة سلوك CVE-2026-3844 في إضافة Breeze Cache الخاصة بووردبريس.

يوضح هذا المستودع السلوك القابل للاستغلال في Breeze Cache 2.4.4 ويقارنه بالسلوك المُصحح في Breeze Cache 2.4.5. يستخدم المختبر خدمتي ووردبريس معزولتين، إحداهما قابلة للاستغلال والأخرى مُصححة، بالإضافة إلى خادم حمولة محلي داخل شبكة Docker.

إثبات المفهوم (PoC) مُصمم ليكون بالحد الأدنى من الضرر: فهو لا يستخدم ويب شيل، ولا يعرض معامل أوامر، ولا يبدأ قشرة عكسية (reverse shell)، ولا يتطلب قراءة ملفات من داخل الحاوية. يعتمد الإثبات على سلوك HTTP قابل للملاحظة من المضيف.


الملخص التنفيذي

تؤثر ثغرة CVE-2026-3844 على إضافة Breeze Cache لووردبريس حتى الإصدار 2.4.4 وما قبله. مسار الكود القابل للاستغلال مرتبط بميزة التخزين المحلي لصور Gravatar في الإضافة، وتحديدًا تدفق fetch_gravatar_from_remote().

عند تفعيل خيار Host Files Locally - Gravatars في Breeze، يمكن للإصدارات القابلة للاستغلال جلب ملف عن بُعد يتحكم فيه المهاجم وتخزينه تحت دليل ذاكرة تخزين مؤقت عام يمكن الوصول إليه عبر الويب. إذا كان الملف الذي تم جلبه هو PHP، فقد ينفَّذ الملف بواسطة خادم الويب عند طلبه عبر HTTP.

يعيد هذا المختبر إنتاج ذلك السلوك محليًا:

  • خدمة vuln: ووردبريس + Breeze Cache 2.4.4
  • خدمة patched: ووردبريس + Breeze Cache 2.4.5
  • خدمة payload: خادم حمولة محلي داخل Docker فقط
  • إثبات المفهوم (PoC): محفّز قائم على التعليقات بدون مصادقة باستخدام سلسلة srcset مُتحكم بها

النتيجة المتوقعة هي:

  • http://127.0.0.1:8081 / Breeze 2.4.4 → ملف PHP الإثباتي يتم تخزينه مؤقتًا وتنفيذه
  • http://127.0.0.1:8082 / Breeze 2.4.5 → ملف PHP الإثباتي لا يتم تخزينه مؤقتًا/قراءته/تنفيذه

هيكل المستودع

.
├── docker-compose.yml
├── vuln/
│   └── Dockerfile
├── patched/
│   └── Dockerfile
├── scripts/
│   └── seed-wordpress.sh
├── payload/
│   └── manual-proof.php
│   └── proof-cve3844.php
├── poc/
│   └── poc.py
│   └── requirements.txt
├── .gitignore
├── README.md

بنية المختبر

Host machine
│
├── http://127.0.0.1:8081  -> vuln WordPress + Breeze 2.4.4
├── http://127.0.0.1:8082  -> patched WordPress + Breeze 2.4.5
└── http://127.0.0.1:9100  -> local payload server

Docker network
│
├── vuln       -> WordPress vulnerable target
├── patched    -> WordPress patched target
├── vuln_db    -> MariaDB for vulnerable WordPress
├── patched_db -> MariaDB for patched WordPress
└── payload    -> Python static HTTP server

تتواصل حاويات ووردبريس مع الحمولة عبر عنوان شبكة Docker:

http://payload:9100/<payload-file>.php

يتحقق المضيف من النتيجة عبر طلبات HTTP عادية إلى خدمات ووردبريس.


المكوّن المتأثر

  • المنتج: إضافة Breeze Cache لووردبريس
  • الإصدار القابل للاستغلال في هذا المختبر: 2.4.4
  • الإصدار المُصحح في هذا المختبر: 2.4.5
  • الدالة القابلة للاستغلال: fetch_gravatar_from_remote()
  • الملف المعني: inc/class-breeze-cache-cronjobs.php
  • الشرط المسبق المطلوب: يجب تفعيل breeze-store-gravatars-locally

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


ملخص السبب الجذري

في Breeze Cache 2.4.4، يمكن لتدفق توطين Gravatar استخراج عنوان URL بعيد من HTML مرتبط بالصور الرمزية وتمريره إلى fetch_gravatar_from_remote().

يفتقر الإصدار القابل للاستغلال إلى التحقق الكافي حول الملف البعيد:

  • لا يوجد تحقق صارم من المضيف الموثوق لمصادر Gravatar
  • لا توجد قائمة بيضاء موثوقة لامتدادات الملفات قبل الحفظ
  • لا يوجد تحقق من MIME/المحتوى قبل وضع الملف في دليل ذاكرة تخزين مؤقت عام
  • قد يحتفظ الملف الذي تم جلبه بامتداد خطير مثل .php

يُخزَّن الملف الناتج تحت:

/wp-content/cache/breeze-extra/gravatars/

عند حفظ ملف PHP هناك ثم طلبه عبر Apache/PHP، ينفذه الخادم.

في Breeze Cache 2.4.5، يضيف التدفق المُصحح تحققًا يمنع تخزين حمولة هذا المختبر كملف PHP قابل للتنفيذ. في إعادة الإنتاج المحلية، يعمل المحفّز نفسه ضد 2.4.4 لكنه لا يُظهر علامة الإثبات ضد 2.4.5.


لماذا يستخدم هذا المختبر مساعد MU Plugin

يبقي هذا المختبر خادم الحمولة محليًا عمدًا بدلاً من استخدام مضيف حمولة عام.

ترفض download_url() الخاصة بووردبريس وواجهة HTTP API الخاصة بووردبريس بعض أسماء مضيفات Docker الخاصة والمنافذ غير القياسية افتراضيًا. غالبًا ما تستخدم سكربتات الاستغلال العامة عناوين حمولة HTTPS عامة، مما يتجنب ذلك القيد. هذا المختبر لا يفعل ذلك.

لإبقاء إعادة الإنتاج محلية بالكامل، يثبّت سكربت البذر (seed) مساعد MU plugin محليًا صغيرًا يقوم بما يلي:

  • يسمح فقط بأسماء مضيفات Docker المحلية payload و payload.local
  • يسمح فقط بمنافذ المختبر 80 و 9100
  • يعتمد تعليقات المختبر تلقائيًا
  • يعطّل فحوصات فيضان التعليقات لضمان اختبار محلي حتمي

لا يقوم هذا المساعد بتعديل الكود المصدري لـ Breeze. تستخدم كل من الخدمة القابلة للاستغلال والمُصححة إصدارات حقيقية من إضافة Breeze مثبتة عبر WP-CLI.

المساعد موجود فقط لجعل مختبر Docker حتميًا ومحليًا فقط.


نموذج الأمان

هذا المستودع مخصص للبحث الأمني المحلي وعرض الأعمال فقط.

ضوابط السلامة:

  • يعمل فقط على localhost وخدمات شبكة Docker
  • لا يوجد خادم استدعاء خارجي
  • لا يوجد هدف استغلال عام
  • لا توجد قشرة عكسية
  • لا توجد قشرة تفاعلية
  • لا يوجد سلوك ويب شيل cmd=
  • لا توجد أسرار أو بيانات اعتماد حقيقية
  • لا توجد قراءة لملفات الحاوية للإثبات
  • يتم ملاحظة الإثبات من خلال سلوك استجابة HTTP

تطبع حمولة إثبات المفهوم معلومات وقت تشغيل PHP غير ضارة:

CVE-2026-3844_LEAST_HARM_PHP_EXEC_PROOF_<nonce>
php_sapi=apache2handler
user=www-data
uid=33
pid=<process id>
host=<container hostname>

يُثبت ذلك سياق تنفيذ الكود دون تشغيل أوامر قشرة.


المتطلبات

  • Docker Desktop أو Docker Engine
  • Docker Compose v2
  • Python 3.9+
  • حزمة Python: requests

تثبيت تبعية Python:

python3 -m venv .venv
source .venv/bin/activate
pip install -r poc/requirements.txt

يجب أن يحتوي requirements.txt على:

requests

البدء السريع

بناء المختبر وتشغيله:

docker compose down -v --remove-orphans
docker compose up -d --build

فحص حالة الخدمات:

docker compose ps

الخدمات المتوقعة:

vuln        healthy    http://127.0.0.1:8081
patched     healthy    http://127.0.0.1:8082
payload     running    http://127.0.0.1:9100
vuln_db     healthy
patched_db  healthy

فحص سجلات البذر:

docker compose logs --tail=120 vuln
docker compose logs --tail=120 patched

أسطر السجل المتوقعة:

[seed] WordPress ready at http://localhost:8081 with Breeze 2.4.4
[seed] WordPress ready at http://localhost:8082 with Breeze 2.4.5

التحقق من جاهزية المختبر

التحقق من تثبيت ووردبريس:

docker compose exec vuln wp core is-installed --allow-root --path=/var/www/html
docker compose exec patched wp core is-installed --allow-root --path=/var/www/html

التحقق من إصدارات Breeze:

docker compose exec vuln wp plugin get breeze --field=version --allow-root --path=/var/www/html
docker compose exec patched wp plugin get breeze --field=version --allow-root --path=/var/www/html

المتوقع:

2.4.4
2.4.5

التحقق من الشرط المسبق للثغرة:

docker compose exec vuln wp option pluck breeze_advanced_settings breeze-store-gravatars-locally --allow-root --path=/var/www/html
docker compose exec patched wp option pluck breeze_advanced_settings breeze-store-gravatars-locally --allow-root --path=/var/www/html

المتوقع:

1
1

التحقق من أن ووردبريس يمكنه جلب خدمة الحمولة المحلية:

docker compose exec vuln wp eval '
$r = download_url("http://payload:9100/proof-cve3844.php");
if (is_wp_error($r)) { var_dump($r->get_error_message()); exit; }
echo $r . PHP_EOL;
echo file_get_contents($r);
@unlink($r);
' --allow-root --path=/var/www/html

إذا لم يكن proof-cve3844.php موجودًا بعد، أنشئ أي ملف مؤقت في payload/ أو شغّل إثبات المفهوم مرة واحدة.


تشغيل إثبات المفهوم

التشغيل ضد الخدمة القابلة للاستغلال:

python3 poc/poc.py --base-url http://127.0.0.1:8081

النتيجة المتوقعة للنظام القابل للاستغلال:

تنزيل الأداة