
ماسح ومختبر لثغرة CVE-2025-11001 في 7-zip
تطبيق ويب تفاعلي ومذهل يوضح ويساعد في اكتشاف الثغرة الحرجة CVE-2023-52169 الخاصة بتجاوز الروابط الرمزية (symlink traversal) في أرشيفات 7-Zip.
../, ..\\)/, C:\\)استنساخ المستودع
git clone <repository-url>
cd Se7enSlip
تثبيت التبعيات
npm install
بدء خادم التطوير
npm start
افتح المتصفح
انتقل إلى http://localhost:3000
# التطوير مع إعادة التحميل التلقائي
npm run dev
# إنشاء ملف ZIP اختباري يحتوي على ثغرات
npm run create-test-zip
# بناء الإنتاج
npm run build
تسمح الثغرة للمهاجمين بإنشاء أرشيفات ZIP خبيثة يمكنها، عند فك ضغطها بواسطة إصدارات 7-Zip المتأثرة، كتابة ملفات خارج دليل الاستخراج المقصود. يتم تحقيق ذلك من خلال:
../ للهروب من مجلد الاستخراج┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Malicious ZIP │───▶│ Vulnerable 7-Zip│───▶│ System Compromise│
│ │ │ < v23.01 │ │ │
│ • ../../../etc/ │ │ │ │ • File overwrite│
│ • /tmp/evil.sh │ │ Fails to validate│ │ • Code execution│
│ • Symlinks │ │ extraction paths│ │ • Privilege esc.│
└─────────────────┘ └─────────────────┘ └─────────────────┘
POST /api/scanرفع وفحص ملف ZIP بحثًا عن الثغرات.
الطلب: بيانات نموذج متعددة الأجزاء مع حقل zipfile
الاستجابة:
{
"filename": "test.zip",
"totalEntries": 10,
"suspicious": [...],
"riskLevel": "HIGH",
"recommendations": [...],
"metadata": {
"totalSize": 12345,
"suspiciousPatterns": {...}
}
}
GET /api/vulnerability-infoاسترجاع معلومات مفصلة حول CVE-2023-52169.
الاستجابة:
{
"cve": "CVE-2023-52169",
"cvssScore": 7.8,
"downloadUrl": "https://www.7-zip.org/download.html",
"references": [...]
}
POST /api/create-test-zipإنشاء ملف ZIP اختباري يحتوي على أنماط ثغرات متنوعة.
الاستجابة: تنزيل ملف ZIP مع إدخالات خبيثة للاختبار
public/css/
├── styles.css # ورقة الأنماط الرئيسية مع خصائص CSS المخصصة
├── animations/ # إطارات الحركة والانتقالات
├── components/ # أنماط خاصة بالمكونات
└── responsive/ # استعلامات الوسائط والتصميم المتجاوب
:root {
--primary: #00ff88; /* أخضر نيون */
--secondary: #ff4757; /* أحمر خطر */
--accent: #3742fa; /* أزرق كهربائي */
--bg-primary: #0a0a0a; /* أسود عميق */
--text-primary: #ffffff; /* أبيض نقي */
}
PORT=3000 # منفذ الخادم
NODE_ENV=production # وضع البيئة
UPLOAD_LIMIT=52428800 # حد حجم الملف (50 ميجابايت)
RATE_LIMIT_WINDOW=900000 # نافذة تحديد المعدل (15 دقيقة)
RATE_LIMIT_MAX=50 # الحد الأقصى للطلبات لكل نافذة
يتضمن التطبيق طبقات أمان متعددة:
// سياسة أمان المحتوى
helmet({
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self'"],
styleSrc: ["'self'", "'unsafe-inline'"],
// ... توجيهات إضافية
}
}
})
# إنشاء ZIP اختباري مع ثغرات
npm run create-test-zip
# سيحتوي الملف المُنشأ على:
# - إدخالات تجاوز المسار (../)
# - مسارات مطلقة (/tmp/, C:\)
# - إدخالات روابط رمزية
# - أسماء مسارات طويلة
# - ملفات قابلة للتنفيذ
NODE_ENV=productionFROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
version: '3.8'
services:
se7enslip:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
volumes:
- ./uploads:/app/uploads