
محاكاة تعليمية آمنة لـ CVE-2025-27520 مع خدمة Flask ضعيفة وماسح Python PoC لإظهار ثغرات إلغاء التسلسل والتحكم المكسور في الوصول.
⚠️ مهم: هذه محاكاة تعليمية آمنة للثغرة CVE-2025-27520.
يتضمن المشروع خدمة محاكاة (Flask) وماسح PoC آمن (Python).
تقوم المحاكاة بإنشاء ملف إثبات فيdata/عند استلام رمز اختباري، بدلاً من تنفيذ أوامر عشوائية.
CVE-2025-27520-final/
├── 📄 README_ru.md # هذا الملف التوثيقي
├── 🐳 Dockerfile # صورة المنصة (Flask)
├── 🐳 docker-compose.yml # إعدادات تشغيل الحاوية
├── 📊 result.json # مثال لنتيجة الماسح
├── ⚙️ setup.cfg # إعدادات flake8
├── 📁 app/ # أكواد الخدمة المصدرية
│ ├── 🐍 app.py # خدمة محاكاة Flask
│ └── 📦 requirements.txt # تبعيات الخدمة
├── 📁 src/ # أكواد الماسح المصدرية
│ ├── 🐍 scanner.py # PoC / ماسح (Python)
│ └── 📦 requirements.txt # تبعيات الماسح
├── 📁 data/ # مجلد قابل للتثبيت للإثباتات
---
## 🎯 وصف موجز للثغرة
**CVE-2025-27520 (محاكاة)** — عرض لإلغاء التسلسل/التحكم في الوصول المكسور الضعيف
**في المنتج الحقيقي يمكن أن يؤدي ذلك إلى:**
- تصعيد الصلاحيات
- تنفيذ تعليمات برمجية عن بُعد
- كشف بيانات حساسة
**في هذه النسخة التعليمية نقوم بـ:**
- تأكيد الثغرة بأمان عبر إنشاء ملف إثبات
- توفير منصة خفيفة للاختبار المحلي
- الالتزام بمبادئ الإفصاح المسؤول
---
## 🛠 متطلبات النظام
- **نظام التشغيل:** Linux
- **Docker:** Docker
- **Python:** 3.11 أو أحدث
---
## 🚀 بدء سريع
### 1. تشغيل الخدمة
```bash
docker-compose up -d
curl http://127.0.0.1:5000/health
الرد المتوقع: {"status":"ok"} أو HTTP 200
python3 -m venv venv
source venv/bin/activate
pip install -r src/requirements.txt
python3 src/scanner.py --url http://127.0.0.1:5000
cat result.json
ls -l data/
cat data/EVIDENCE_LANG_BENTO_SIM.txt
# في جذر المشروع
docker-compose build --no-cache
docker-compose up -d
docker ps
docker-compose ps
docker logs bento-sim --tail 100
النتيجة المتوقعة: الحاوية bento-sim بحالة Up مع توجيه المنافذ 0.0.0.0:5000->5000/tcp
--urlsource venv/bin/activate
python3 src/scanner.py --url http://127.0.0.1:5000
[
{
"ip": "http://127.0.0.1:5000",
"vuln": true
}
]
النقاط الطرفية الرئيسية:
POST /simulate_deserialize - يستقبل JSON بمفتاح payloadGET /evidence - يتحقق من وجود ملف الإثباتGET /health - التحقق من قابلية تشغيل الخدمةمنطق العمل:
EVIDENCE_TRIGGER ينشئ ملف إثبات0.0.0.0:5000data/EVIDENCE_LANG_BENTO_SIM.txt - ملف الإثبات، يُنشأ عند نجاح المحاكاةresult.json - نتائج الفحص، يُنشئها سكريبت PoCvuln: falsedocker ps
curl http://127.0.0.1:5000/health
curl -v -X POST http://127.0.0.1:5000/simulate_deserialize \
-H "Content-Type: application/json" \
-d '{"payload":"Hello EVIDENCE_TRIGGER"}'
الرد المتوقع: {"result":"evidence created"}
docker logs bento-sim --tail 200
sudo ss -ltnp | grep 5000
sudo iptables -L -n -v
pip install black autopep8
black src/scanner.py
# أو
autopep8 --in-place --aggressive --aggressive src/scanner.py
7z a -v3g -m0=Copy "CVE-2025-27520-stand.7z" "file.ova"
tar -tf file.ova | head -n 20
File → Import في VMware Workstation / VirtualBoxCVE-2025-27520-final/
├── 📄 README_ru.md
├── 🐳 Dockerfile
├── 🐳 docker-compose.yml
├── 📁 app/
├── 📁 src/
├── 📊 result.json
├── 📁 data/
zip -r CVE-2025-27520-final.zip CVE-2025-27520-final
sha256sum CVE-2025-27520-final.zip > CVE-2025-27520-final.zip.sha256
# لـ ZIP
unzip -t CVE-2025-27520-final.zip