
تطبيق Next.js معرض للثغرات عمدًا لأبحاث الأمن CVE-2025-55182 وتحديات CTF
⚠️ للأغراض التعليمية فقط: هذا تطبيق ضعيف عمدا مصمم لأبحاث أمنية مرخصة وتحديات CTF. لا تستخدم هذه التقنيات على أنظمة غير مصرح بها.
تطبيق Next.js 15.1.6 ضعيف عمدا يوضح CVE-2025-55182 (React2Shell) - ثغرة تنفيذ أوامر عن بعد حرجة في مكونات خادم React. تم بناؤه لباحثي الأمن، ومختبري الاختراق، والطلاب لممارسة تقنيات الاستغلال في بيئة آمنة ومعزولة.
CVE-2025-55182، المعروف أيضًا باسم React2Shell، هو ثغرة تنفيذ أوامر عن بعد (RCE) حرجة تؤثر على مكونات خادم React في Next.js.
تنشأ الثغرة من معالجة غير صحيحة للبيانات المسلسلة في إجراءات خادم React. يمكن للمهاجمين صياغة حمولات ضارة تتجاوز التحقق وتنفذ أكواد عشوائية على الخادم من خلال:
قبل البدء، تأكد من تثبيت ما يلي:
docker --version
docker-compose --version
git --version
# 1. استنساخ المستودع
git clone https://github.com/Machine-farmer/PunchingBag-for-React2Shell.git
cd PunchingBag-for-React2Shell
# 2. بناء وتشغيل باستخدام Docker
docker-compose up --build
# 3. الوصول إلى التطبيق
# افتح المتصفح على: http://localhost:3000
# 1. استنساخ المستودع
git clone https://github.com/Machine-farmer/punchingbag-cve-2025-55182.git
cd punchingbag-cve-2025-55182
# 2. تثبيت الاعتماديات
npm install
# 3. تشغيل خادم التطوير
npm run dev
# 4. الوصول على http://localhost:3000
⚠️ تحذير: الإعداد اليدوي بدون Docker غير موصى به لأبحاث الأمان. استخدم دائماً Docker للعزل.
# تشغيل التطبيق الضعيف
docker-compose up
# تشغيل في الوضع المنفصل (خلفية)
docker-compose up -d
# عرض السجلات
docker-compose logs -f
# إيقاف الحاويات
docker-compose down
# إيقاف وإزالة المجلدات
docker-compose down -v
# تنظيف كامل (إزالة الصور)
docker-compose down -v --rmi all
بمجرد التشغيل، انتقل إلى:
يحتوي PunchingBag على 5 أعلام مخفية تختبر تقنيات استغلال مختلفة:
جميع الأعلام تتبع التنسيق: CTF{وصف_هنا}
# استكشاف التطبيق
curl http://localhost:3000
# التحقق من النقاط الطرفية المتاحة
curl http://localhost:3000/dashboard
curl http://localhost:3000/admin
اعتراض عمليات إرسال النماذج وتعديل الحمولة:
// مثال لحمولة ضارة
{
"name": "مهاجم",
"email": "[email protected]",
"message": "__proto__: { isAdmin: true }"
}
# حقن رؤوس ضارة
curl -X POST http://localhost:3000/api/data \
-H "Content-Type: application/json" \
-H "x-user-data: {\"role\":\"admin\"}" \
-d '{"exploit": true}'
تحقق من .env.local لبيانات الاعتماد أو استغل المصادقة:
# رمز المشرف الافتراضي (ضعيف عمدا)
اسم المستخدم: admin
الرمز: super_secret_admin_key_12345
على المكون الضعيف استخدم ميزة تنفيذ الأوامر:
# محاكاة RCE
الأمر: cat /flag.txt
__proto__punchingbag-cve-2025-55182/
├── app/
│ ├── actions.js # إجراءات الخادم الضعيفة
│ ├── layout.js # تخطيط التطبيق
│ ├── page.js # الصفحة الرئيسية مع معلومات CTF
│ ├── globals.css # أنماط عامة
│ ├── admin/
│ │ └── page.js # لوحة الإدارة (العلم 3، 4)
│ ├── dashboard/
│ │ └── page.js # لوحة المستخدم (العلم 1، 2)
│ └── api/
│ ├── data/
│ │ └── route.js # نقطة نهاية API
│ └── submit/
│ └── route.js # نقطة نهاية إرسال النموذج
├── components/
│ ├── Logo.js # شعار التطبيق
│ ├── VulnerableForm.js # مكون النموذج القابل للاستغلال
│ └── UserDisplay.js # عرض ملف المستخدم
├── lib/
│ └── flags.js # إدارة الأعلام
├── public/
│ └── boxing-bag.png # أيقونة التطبيق
├── .env.local # متغيرات البيئة (العلم 5)
├── docker-compose.yml # تكوين Docker
├── Dockerfile # تعريف الحاوية
├── next.config.js # تكوين Next.js
├── package.json # الاعتماديات
└── README.md # هذا الملف
هذا التطبيق ضعيف عمدا ومصمم لـ:
✅ الاستخدامات المصرح بها:
❌ الاستخدامات المحظورة:
# التنظيف السليم بعد الاستخدام
docker-compose down -v --rmi all
المساهمات مرحب بها! يرجى اتباع هذه الإرشادات:
git checkout -b feature/ميزةمذهلة)git commit -m 'أضف بعض الميزات المذهلة')git push origin feature/ميزةمذهلة)هذا المشروع مرخص بموجب رخصة MIT - انظر ملف LICENSE للتفاصيل.
إذا ساعدك هذا المشروع في تعلم أمن الويب، يرجى التفكير في منحه نجمة! ⭐
صنع بـ 🥊 لأبحاث الأمان
تذكر: مع القوة العظيمة تأتي مسؤولية عظيمة. استخدم مهاراتك أخلاقياً أو غير أخلاقياً، أمزح😁، لا تستخدمها أبداً غير أخلاقياً.
| العلم | التحدي | الصعوبة | النقاط |
|---|
| 🚩 العلم 1 | استطلاع أساسي | سهل | 100 |
| 🚩 العلم 2 | استغلال إجراء الخادم | متوسط | 200 |
| 🚩 العلم 3 | تجاوز وصول المشرف | متوسط | 300 |
| 🚩 العلم 4 | تنفيذ أوامر عن بعد | صعب | 400 |
| 🚩 العلم 5 | أسرار البيئة | متوسط | 250 |