Share
## https://sploitus.com/exploit?id=46966853-D2D9-5124-A5A7-142E26939C48
# CVE-2025-27520 — Безопасная учебная симуляция / PoC (Demo Stand)
> **⚠️ Важно:** Это безопасная **учебная** симуляция уязвимости 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 (симуляция)** — демонстрация уязвимой десериализации / broken access control
**В реальном продукте это могло бы приводить к:**
- Эскалации привилегий
- Удалённому выполнению кода
- Раскрытию конфиденциальных данных
**В этой учебной версии мы:**
- Безопасно подтверждаем уязвимость через создание файла-доказательства
- Предоставляем легковесный стенд для локального тестирования
- Соблюдаем принципы ответственного раскрытия
---
## 🛠 Требования к системе
- **ОС:** Linux
- **Docker:** Docker
- **Python:** 3.11 или новее
---
## 🚀 Быстрый старт
### 1. Запуск сервиса
```bash
docker-compose up -d
```
### 2. Проверка работоспособности
```bash
curl http://127.0.0.1:5000/health
```
**Ожидаемый ответ:** `{"status":"ok"}` или HTTP 200
### 3. Настройка окружения и запуск сканера
```bash
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
```
### 4. Проверка результатов
```bash
cat result.json
ls -l data/
cat data/EVIDENCE_LANG_BENTO_SIM.txt
```
---
## 📦 Детальная установка (Docker)
### Сборка и запуск контейнеров
```bash
# В корне проекта
docker-compose build --no-cache
docker-compose up -d
```
### Проверка состояния
```bash
docker ps
docker-compose ps
docker logs bento-sim --tail 100
```
**Ожидаемый результат:** контейнер `bento-sim` в статусе `Up` с пробросом портов `0.0.0.0:5000->5000/tcp`
---
## 🔍 PoC / Сканер: Описание и использование
### Основные характеристики
- Принимает целевой URL через параметр `--url`
- Отправляет безопасный JSON-запрос с тестовым маркером
- Проверяет наличие доказательства уязвимости
- Сохраняет результаты в формате JSON
### Команды запуска
```bash
source venv/bin/activate
python3 src/scanner.py --url http://127.0.0.1:5000
```
### Формат выходных данных
```json
[
{
"ip": "http://127.0.0.1:5000",
"vuln": true
}
]
```
---
## 🖥 Описание имитационного сервиса
**Основные endpoint'ы:**
- `POST /simulate_deserialize` - принимает JSON с ключом `payload`
- `GET /evidence` - проверяет наличие файла-доказательства
- `GET /health` - проверка работоспособности сервиса
**Логика работы:**
- При получении маркера `EVIDENCE_TRIGGER` создаёт файл-доказательство
- Слушает на `0.0.0.0:5000`
- Все операции изолированы в контейнере
---
## 📁 Файловая структура доказательств
- `data/EVIDENCE_LANG_BENTO_SIM.txt` - файл-доказательство, создаётся при успешной симуляции
- `result.json` - результаты сканирования, формируется PoC-скриптом
---
## 🐛 Поиск и устранение неисправностей
### Если PoC сообщает `vuln: false`
1. **Проверка доступности сервиса:**
```bash
docker ps
curl http://127.0.0.1:5000/health
```
2. **Ручная проверка триггера:**
```bash
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"}`
3. **Просмотр логов:**
```bash
docker logs bento-sim --tail 200
```
4. **Проверка сетевых настроек:**
```bash
sudo ss -ltnp | grep 5000
sudo iptables -L -n -v
```
5. **Проверка кода (PEP8):**
```bash
pip install black autopep8
black src/scanner.py
# или
autopep8 --in-place --aggressive --aggressive src/scanner.py
```
---
### Создание разделённого архива
```bash
7z a -v3g -m0=Copy "CVE-2025-27520-stand.7z" "file.ova"
```
### Проверка содержимого OVA
```bash
tar -tf file.ova | head -n 20
```
### Импорт в VMware
- Используйте `File → Import` в VMware Workstation / VirtualBox
---
## 📤 Упаковка релиза
### Подготовка финальной структуры
```
CVE-2025-27520-final/
├── 📄 README_ru.md
├── 🐳 Dockerfile
├── 🐳 docker-compose.yml
├── 📁 app/
├── 📁 src/
├── 📊 result.json
├── 📁 data/
```
### Создание архива ( CVE-2025-27520-final.zip.sha256
```
### Тестирование архива
```bash
# Для ZIP
unzip -t CVE-2025-27520-final.zip
---