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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
bola-CVE-2023-27524 | Kitploit
أدوات/GitHubGitHub/rachidafaf/bola-cve-2023-27524
المصادقة والترخيصتحليل الثغرات الأمنيةاستغلال تطبيقات الويباختبار أمان APIاختبار الاختراقالتعلم والتعليم
GitHubrachidafaf/bola-cve-2023-27524

bola-CVE-2023-27524

عرض المستودع
منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

bola-CVE-2023-27524

📄 README.md — المشروع التوضيحي لثغرة BOLA CVE-2023-27524

root@kitploit:~
# 🔐 عرض توضيحي لكسر التحكم في الصلاحيات على مستوى الكائنات (BOLA)  
## تحليل ثغرة CVE-2023-27524 وإصلاحها

---

## 📌 نظرة عامة على المشروع

يعرض هذا المشروع ثغرة واقعية من نوع **كسر التحكم في الصلاحيات على مستوى الكائنات (BOLA)** وكيفية معالجتها بشكل آمن باستخدام واجهة برمجة تطبيقات (API) مبنية على Flask.

الثغرة مصممة على غرار **CVE-2023-27524**، والتي تنطوي على ضوابط تفويض غير سليمة تسمح للمهاجمين بالوصول إلى كائنات غير مصرح بها أو التلاعب بها عن طريق تعديل معرّفات الكائنات (IDs) في طلبات API.

يتضمن هذا المستودع:
- ❌ vulnerable_api.py: نسخة هشّة من الـ API 
- ✅ fixed_vulnerable_api.py: نسخة آمنة بعد الإصلاح تطبّق تحكمًا سليمًا في الصلاحيات على مستوى الكائنات

---

## ⚠️ ما هي BOLA؟

تحدث ثغرة **كسر التحكم في الصلاحيات على مستوى الكائنات (BOLA)** عندما:
- يكشف التطبيق معرّفات الكائنات (مثل `/profile?id=2`)
- يفشل في التحقق من أن المستخدم المصادق عليه مخوّل للوصول إلى ذلك الكائن

### 🔴 الأثر:

يمكن للمهاجمين:
- الوصول إلى البيانات الخاصة لمستخدمين آخرين
- تعديل أو حذف الموارد غير المصرح بها
- تنفيذ تصعيد صلاحيات أفقي

---

## 💥 التنفيذ الهشّ (غير الآمن)

### مثال (كود هشّ)

```python
@app.route('/profile')
def profile():
    user_id = request.args.get("id")
    return users.get(int(user_id))
```

### ❌ المشكلة:

* لا يوجد أي تحقق من المصادقة
* لا يوجد أي تحقق من ملكية الكائن
* المعرّف الذي يتحكم به المستخدم يصل مباشرةً إلى كائنات قاعدة البيانات

### 🔓 سيناريو الاستغلال:

```
/profile?id=1   → Alice data
/profile?id=2   → Bob data (unauthorized access)
```

---

## 🔒 التنفيذ الآمن بعد الإصلاح

### مثال (كود آمن)

```python
@app.route('/profile')
def profile():
    requested_id = int(request.args.get("id", session["user_id"]))

    # Object-level authorization check
    if requested_id != session["user_id"]:
        return "403 Forbidden - Access Denied", 403

    return users.get(requested_id)
```

---

## ✅ الإصلاح الأمني المُطبَّق

يمنع هذا التنفيذ ثغرة BOLA عبر فرض:

✔ مصادقة تعتمد على الجلسات
✔ التحقق من ملكية الكائن
✔ عمليات التحقق من التفويض على جانب الخادم
✔ منع هجمات العبث بالمعرّفات

---

## 🧠 الدرس الأمني الأساسي

> لا تثق أبدًا بمعرّفات الكائنات التي يقدمها المستخدم دون التحقق من التفويض على جانب الخادم.

المصادقة وحدها ليست كافية — **يجب فرض التفويض على مستوى الكائن.**

---

## 📊 تدفق الهجوم مقابل التدفق الآمن

### ❌ التدفق الهشّ:

```
User → API Request (/profile?id=2) → Direct DB Access → Data Leak
```

### ✅ التدفق الآمن:

```
User → API Request → Session Check → Ownership Validation → Allowed/Denied
```

---

## 🧪 طريقة التشغيل

### 1. تثبيت الاعتماديات

```bash
pip install flask
```

### 2. تشغيل التطبيق

```bash
python fixed_vulnerable_api.py or vulnerable_api.py
```

### 3. الوصول إلى التطبيق

```
http://127.0.0.1:5000
```

---

## 📁 بنية المشروع

```
api-bola-demo/
│
├── vulnerable_api.py     # insecure version
├── fixed_vulnerable_api.py   # Fixed BOLA version
└── README.md
```
تنزيل الأداة