
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 (시뮬레이션)** — 취약한 역직렬화 / broken access control 데모
**실제 제품에서는 다음과 같은 문제를 일으킬 수 있습니다:**
- 권한 상승
- 원격 코드 실행
- 기밀 데이터 노출
**이 교육용 버전에서는 다음을 수행합니다:**
- 증거 파일 생성을 통해 취약점을 안전하게 확인합니다
- 로컬 테스트를 위한 경량 스탠드를 제공합니다
- 책임 있는 공개(responsible disclosure) 원칙을 준수합니다
---
## 🛠 시스템 요구 사항
- **OS:** 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가 연결됩니다
--url 매개변수를 통해 대상 URL을 받습니다source 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 - payload 키가 포함된 JSON을 받습니다GET /evidence - 증거 파일의 존재 여부를 확인합니다GET /health - 서비스 작동 상태를 확인합니다동작 로직:
EVIDENCE_TRIGGER 마커를 수신하면 증거 파일을 생성합니다0.0.0.0:5000에서 수신 대기합니다data/EVIDENCE_LANG_BENTO_SIM.txt - 시뮬레이션 성공 시 생성되는 증거 파일result.json - PoC 스크립트로 생성되는 스캔 결과vuln: false를 보고하는 경우docker 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를 사용하세요CVE-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
---