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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
hello-ReGrade-security — اعثر على الثغرة التي لم تُكتب اختباراتك أبداً لاصطيادها. نموذج توضيحي لـ ReGrade يحاكي CVE-2023-5968: اصطد تسرب تجزئة كلمة المرور بمقارنة تطبيق بنفسه. | Kitploit
أدوات/GitHubGitHub/curtail-inc/hello-regrade-security
التحليل الديناميكي (عزل)هجمات كلمات المرورتحليل الثغرات الأمنيةاختبار أمان APIأمن الويبالتشفيراختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
GitHubcurtail-inc/hello-regrade-security

hello-ReGrade-security

اعثر على الثغرة التي لم تُكتب اختباراتك أبداً لاصطيادها. نموذج توضيحي لـ ReGrade يحاكي CVE-2023-5968: اصطد تسرب تجزئة كلمة المرور بمقارنة تطبيق بنفسه.

عرض المستودع
2منذ 26 أياملم تتم المراجعة بعد
مشاركة

hello-ReGrade-security

عرض عملي لاكتشاف ثغرات اليوم الصفري باستخدام ReGrade. ستوجّه مجموعة اختبارات عادية نحو ReGrade، وتسجّلها مقابل خدمة صغيرة، ثم تعيد تشغيلها مقابل نسخة ثانية من نفس الخدمة، وتستخدم Claude Code وأدوات MCP من ReGrade للكشف عن تسريب تجزئة كلمة المرور — وهي ثغرة لم تكتب أي اختبار لاكتشافها.

يحاكي هذا ثغرة حقيقية: CVE-2023-5968، حيث أعاد نقطة نهاية تحديث اسم المستخدم في منصة تعاون كامل كائن المستخدم بما في ذلك تجزئة bcrypt لكلمة المرور. تم نشرها في 2017 ونجت من 7 سنوات من الاختبارات والمراجعات والفحوصات. (تدوينة Curtail.)

المفاجأة: لا يوجد إصدار v2. أنت تقارن التطبيق بنفسه. تقوم كل نسخة جديدة بتجزئة كلمات المرور باستخدام أملاح bcrypt مختلفة، لذا فإن قيم التجزئة المسربة تختلف بين النسختين — وهذه العشوائية هي ما يكتشفه ReGrade. الثغرة كامنة في الكود الذي شحنته بالفعل؛ لا حاجة لتغيير الإصدار لاكتشافها.

ما ستحتاجه

  • Docker (للخدمة التجريبية) وPython (لتشغيل مجموعة اختبارات الحركة).
  • حساب ReGrade ومفتاح API — سجّل في https://app.regrade.curtail.com، وقم بتثبيت مستشعر regrade من https://app.regrade.curtail.com/downloads، ثم عيّن REGRADE_API_KEY (أو ~/.regrade/key).
  • Claude Code مع إضافة ReGrade: claude plugin marketplace add https://app.regrade.curtail.com/downloads/latest/marketplace.json ثم claude plugin install regrade@regrade --scope user، واربطه مرة واحدة (/mcp, مسجّل الدخول إلى نفس الحساب كمفتاحك).

الخدمة التجريبية

واجهة برمجة تطبيقات صغيرة لـ"دردشة فريق" (app/store.py) تحتوي على مستخدمين وقنوات. يقوم Docker Compose بتشغيل نسختين متطابقتين — نفس الصورة، نفس الكود، لا علامة إصدار:

  • instance-a على http://localhost:8001 — تسجل مقابل هذه.
  • instance-b على http://localhost:8002 — تعيد التشغيل مقابل هذه.

تحتوي نقطة نهاية واحدة على عيب مزروع:

نقطة النهايةالسلوك
GET /users/<id>مُطهّرة — لا تعيد كلمة المرور أبدًا. خط الأساس النظيف.

يتم تجزئة كلمات المرور باستخدام bcrypt عند بدء التشغيل، لذا تحتفظ instance-a و instance-b بتجزئات مختلفة لنفس المستخدم.

root@kitploit:~
git clone https://github.com/Curtail-Inc/hello-ReGrade-security
cd hello-ReGrade-security
docker compose up -d --build

1. التسجيل — وجّه اختباراتك الحالية نحو ReGrade

traffic/test_api.py هي مجموعة اختبارات وظيفية عادية: تسجيل الدخول، قراءة مستخدم، إعادة تسمية مستخدم، سرد القنوات. تؤكد سلوك CRUD ولا تقدم أي تأكيدات أمنية — لا تتحقق أبدًا مما إذا كان password يتسرب. (لماذا تفعل؟ لم يكن أحد يعلم بوجود الثغرة.)

ابدأ وكيل المستشعر أمام instance-a:

root@kitploit:~
regrade proxy --target http://localhost:8001 --port 19870

في نافذة طرفية أخرى، قم بتشغيل نفس مجموعة الاختبارات — فقط وجّه BASE_URL نحو الوكيل. هذا هو التغيير الوحيد:

root@kitploit:~
BASE_URL=http://localhost:19870 python -m pytest traffic/test_api.py

جميع الاختبارات تنجح، كما هي. أوقف الوكيل (Ctrl-C)؛ يتم رفع التسجيل ويطبع Recording ID: <uuid> — دوّنه.

2. إعادة التشغيل مقابل instance-b

root@kitploit:~
regrade replay --rec-id <RECORDING_ID> --target http://localhost:8002

نفس الكود على كلا الجانبين — الاختلافات الوحيدة هي القيم التي تولدها النسخة الجديدة.

3. العثور على التسريب في Claude Code

افتح هذا المستودع في Claude Code واطلب منه أن يرشدك خلال إعادة التشغيل. بفضل CLAUDE.md في هذا المستودع، سيقوم بما يلي:

  • تشغيل summarize_deltas → العديد من الدلتات: رمز الدخول token، طوابع created_at للقنوات، ومن بينها بهدوء — $.password.
  • تقليل الضوضاء باستخدام قواعد الملف الشخصي (المسار القابل لإعادة الاستخدام والصحيح):
    • create_id_mapping لـ $.token للجلسة (معرّف ديناميكي، وليس ضوضاء للتجاهل)،
    • create_filter_rule DROP لـ $.channels[*].created_at (طابع زمني لكل بدء تشغيل)،
    • apply_profile_to_replay، ثم query_deltas(unlabeled_only=true) — كرر حتى يتبقى دلتا واحدة فقط.
  • الكشف: الدلتا الباقية هي $.password — تجزئة bcrypt في نص استجابة. تسريب على مستوى CVE، تم اكتشافه بدون معرفة مسبقة وبدون أي تأكيدات أمنية.

4. لماذا هذا مختلف

رمز الجلسة وتجزئة كلمة المرور كلاهما يختلفان بين التشغيلتين — كلاهما سلاسل عالية العشوائية تتغير في كل مرة. أحدهما ضوضاء شرعية تقوم بتعيينها؛ والآخر هو اختراق. لا يمكنك التمييز بينهما بمجرد "لقد تغير" — يجب أن تنظر إلى ما تغير. قم بتصفية كل حقل عالي العشوائية بعيدًا كضوضاء وكنت ستخفي الثغرة.

هذا هو الدرس: ReGrade لا يتحقق من التوقعات، بل يقارن السلوك — لذا يمكنه اكتشاف الثغرات التي لم يفكر أحد في كتابة اختبار لها.

كيف يعمل التسريب

app/store.py هو ملف واحد. مسارات GET تستدعي sanitize()؛ مسار PATCH ينساها. انظر بعد أن تكتشفها باستخدام ReGrade — المغزى هو أن ReGrade التقطها من الحركة وحدها، بمقارنة التطبيق بنفسه.

الترخيص

Apache-2.0.

تنزيل الأداة
PATCH /users/<id> (إعادة التسمية)العيب — تعيد كائن المستخدم الكامل بما في ذلك تجزئة password من bcrypt. استدعاء sanitize() مفقود واحد، تمامًا مثل CVE-2023-5968.