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**, которая связана с некорректными механизмами авторизации, позволяющими атакующим получать доступ к неавторизованным объектам или изменять их путём модификации идентификаторов объектов (ID) в 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
```
Скачать инструмент