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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Tough-Cookie-v2.5.0-Patched — tough-cookie المُصحح v2.5.0 لإصلاح ثغرة تلوث النموذج الأولي CVE-2023-26136 باستخدام Object.create(null) في MemoryCookieStore، بما في ذلك عرض الاستغلال واختبارات الوحدة. | Kitploit
أدوات/GitHubGitHub/dani33339/tough-cookie-v2.5.0-patched
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودالاستغلالأمن الويبالتعلم والتعليم
GitHubdani33339/tough-cookie-v2.5.0-patched

Tough-Cookie-v2.5.0-Patched

tough-cookie المُصحح v2.5.0 لإصلاح ثغرة تلوث النموذج الأولي CVE-2023-26136 باستخدام Object.create(null) في MemoryCookieStore، بما في ذلك عرض الاستغلال واختبارات الوحدة.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
عرض المستودع
11منذ سنة واحدةلم تتم المراجعة بعد
مشاركة

Tough-Cookie v2.5.0 مُصحَّح - إصلاح تلوث النموذج الأولي

نظرة عامة

يحتوي هذا المستودع على نسخة مُصحَّحة من حزمة tough-cookie، الإصدار 2.5.0، لمعالجة الثغرة الحرجة تلوث النموذج الأولي (CVE-2023-26136). تسمح هذه الثغرة للمهاجمين بالتلاعب بسلسلة النموذج الأولي عن طريق حقن خصائص في كائنات JavaScript. قد يؤدي ذلك إلى سلوك غير متوقع، ومخاطر أمنية مثل تنفيذ التعليمات البرمجية عن بُعد، ومشاكل توافق في التطبيقات التي تعتمد على هذه الحزمة.

وصف الثغرة

الإصدارات الأقدم من حزمة tough-cookie قبل v4.1.3 معرضة لـ تلوث النموذج الأولي عند استخدام CookieJar بوضع rejectPublicSuffixes=false. تنشأ الثغرة من معالجة غير صحيحة لملفات تعريف الارتباط، وتحديداً عندما يتم تعيين cookie.domain إلى __proto__. يسمح هذا للمهاجمين بتعديل كائن Object.prototype الأساسي، مما قد يتسبب بمشاكل واسعة النطاق عبر التطبيق.

لمزيد من التفاصيل حول CVE-2023-26136، اطّلع على:

  • NVD - CVE-2023-26136
  • Snyk - CVE-2023-26136 في Tough-Cookie
  • GitHub - المشكلة #282

المخاطر المحتملة لتلوث النموذج الأولي

يمكن أن يؤدي تلوث النموذج الأولي إلى عدة مخاطر حرجة، بما في ذلك:

  • الثغرات الأمنية: من خلال تعديل Object.prototype الأساسي، يمكن للمهاجمين التلاعب بسلوك الكائنات، مما قد يُتيح رفع الصلاحيات، الوصول إلى بيانات حساسة، أو تجاوز آليات الأمان في التطبيق.

  • حرمان الخدمة (DoS): يمكن أن يتسبب تلويث سلسلة النموذج الأولي بسلوك غير متوقع في النظام، مما يؤدي إلى أعطال، حلقات لا نهائية، أو استنزاف الموارد، مما يجعل التطبيق غير متاح للمستخدمين الشرعيين.

  • مشاكل التوافق: تغيير Object.prototype يمكن أن يُحدث أخطاء وسلوكاً غير متوقع عند التفاعل مع مكتبات أو أطر عمل أخرى. قد تتعطل التبعيات التي تعتمد على سلاسل النموذج الأولي، مما يؤدي إلى مشاكل تكامل أو سلوك تطبيق خاطئ أثناء التحديثات.

  • سلوك تطبيق غير متوقع: يمكن أن يؤدي تلوث النموذج الأولي إلى سلوك برمجي غير منتظم، بما في ذلك فساد البيانات، خروقات أمنية، وربما تعريض التطبيق لمزيد من الاستغلال.

الإصلاحات الرئيسية

يتضمن التصحيح تعديل فئة MemoryCookieStore، وتحديداً طريقة putCookie، لمنع تلوث النموذج الأولي عن طريق إنشاء كائنات بدون نموذج أولي. التغييرات الرئيسية تشمل:

  1. استخدام Object.create(null) بدلاً من {} لإنشاء كائنات بدون نموذج أولي.
  2. إصلاح الثغرة حيث يمكن تعيين ملفات تعريف الارتباط باستخدام cookie.domain = __proto__.
  3. إضافة اختبارات للتحقق من معالجة الثغرة بشكل صحيح.

تثبيت النسخة المُصحَّحة

لتثبيت النسخة المُصحَّحة من tough-cookie، استخدم الأمر التالي:

npm install ./tough-cookie-2.5.0-PATCHED.tgz

اختبار الإصلاح

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

الاختبار، المسمى prototype_pollution_test، يتحقق تحديداً من أن تعيين ملفات تعريف الارتباط بنطاق __proto__ لم يعد يؤثر على سلسلة النموذج الأولي في JavaScript. يضمن ذلك منع تلوث النموذج الأولي، مما يحافظ على سلامة التطبيق.

لتشغيل الاختبارات وتأكيد الإصلاح، نفّذ الأمر التالي:

npm test

عرض الاستغلال

لتوضيح الاستغلال في كل من النسخة الأصلية والمنقحة، اتبع الخطوات أدناه:

النسخة الأصلية المعرضة للثغرة

قم بتثبيت النسخة المعرضة للثغرة من tough-cookie:

npm install [email protected] && node index.js

المخرجات المتوقعة:

Polluted object: {
  Slonser: Cookie="Slonser=polluted; Domain=__proto__; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms",
  Auth: Cookie="Auth=Lol; Domain=google.com; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms"
} EXPLOITED SUCCESSFULLY

يشير هذا إلى أن النموذج الأولي لكائن قد تم تلويثه، مما يؤكد وجود الثغرة في النسخة الأصلية.

النسخة المُصحَّحة

 npm install ./tough-cookie-2.5.0-PATCHED.tgz && node index.js

المخرجات المتوقعة:

EXPLOIT FAILED

يظهر هذا أن الاستغلال قد تم منعه بنجاح، مما يؤكد إصلاح ثغرة تلوث النموذج الأولي.

النهج والخطوات المتبعة

تضمنت عملية معالجة ثغرة تلوث النموذج الأولي في tough-cookie v2.5.0 عدة خطوات منهجية لضمان أن الإصلاح كان شاملاً وفعالاً. فيما يلي نظرة عامة على النهج الذي اتبعته:

1. فهم الثغرة

بدأت بالبحث عن تلوث النموذج الأولي (CVE-2023-26136) لفهم تأثيره. تسمح الثغرة للمهاجمين بحقن خصائص في سلسلة النموذج الأولي عبر خاصية cookie.domain، مما قد يتسبب في مخاطر أمنية مثل تنفيذ التعليمات البرمجية عن بُعد.

2. البحث عن الإصلاحات الحالية

استكشفت المشكلات والمناقشات على GitHub حول الثغرة، بما في ذلك الإصلاح في tough-cookie v4.1.3، الذي يستخدم Object.create(null) لمنع تلوث النموذج الأولي. ساعدني هذا في تحديد التغييرات اللازمة لإصلاح v2.5.0.

3. تحليل النسخ المعرضة والمصححة

قارنت بين v2.5.0 و v4.1.3 لفهم الاختلافات وتحديد التغييرات الضرورية. التعديل الرئيسي تضمن استخدام كائنات بدون نموذج أولي لمنع الاستغلال.

4. تنفيذ الحل

قمت بتحديث فئة MemoryCookieStore لاستخدام Object.create(null) بدلاً من {}، مما يضمن عدم حدوث تلوث النموذج الأولي.

5. اختبار الحل

كتبت اختبارات وحدة للتحقق من الإصلاح، وأنشأت نصاً برمجياً لعرض الاستغلال (index.js) لإظهار كيف يتم منع الثغرة في النسخة المُصحَّحة.

6. توثيق الإصلاح

أخيراً، قمت بتوثيق الإصلاح، بما في ذلك تعليمات التثبيت والاختبار، وحزم النسخة المُصحَّحة (tough-cookie-2.5.0-PATCHED.tgz) لتسهيل التوزيع.

ملخص التغييرات

الملفات المضافة/المعدلة من v2.5.0

  • index.js: النص البرمجي الرئيسي لعرض الثغرة والإصلاح.
  • lib/memstore.js: فئة MemoryCookieStore المعدلة لمنع تلوث النموذج الأولي.
  • test/ietf_data/parser.json: تم تحديثه لتعديل التواريخ القديمة في بيانات الاختبار.
  • test/prototype_pollution_test.js: اختبارات وحدة للتحقق من إصلاح تلوث النموذج الأولي.
  • tough-cookie-2.5.0-PATCHED.tgz: النسخة المُصحَّحة من حزمة tough-cookie.
تنزيل الأداة