文章总结: 本文解析kkFileView4.2.0及以上版本存在的SSRF漏洞(CVE-2026-88592),根因是TrustHostFilter校验参数与控制器实际使用参数不一致,攻击者可利用urlPath参数绕过白名单发起内网请求并回显响应。文章提供利用链、验证结果及修复建议,包括统一参数名、二次校验、内网IP黑名单及协议限制,并强调仅限授权环境测试。
综合评分: 85
文章分类: 漏洞分析,代码审计,WEB安全
CVE-2026-88592:kkFileView 跨域文件代理绕TrustHostFilter 全解析
原创
柠檬赏金猎人
柠檬赏金猎人
柠檬赏金猎人
2026年9月25日 10:21
广东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
概述
#
kkFileView 是一款基于 Spring Boot 的在线文件预览开源项目,其 /getCorsFile 跨域文件代理端点被发现存在服务器端请求伪造(SSRF)漏洞(CWE-918),影响 4.2.0 及更高版本。
漏洞根源在于参数校验与业务取值不一致:TrustHostFilter 过滤器按固定优先级校验第一个非空参数(url),而 OnlinePreviewController.getCorsFile 控制器实际读取并请求的是 urlPath 参数。攻击者只需在同一次请求中同时提供两者,即可让诱饵参数通过白名单校验,而真正的恶意目标地址被服务器端请求并将响应体回显给攻击者。
该漏洞已在真实 Docker 靶场环境中验证成功,高危等级,画像置信度 0.82。
技术/功能
| 属性 | 值 |
| — | — |
| 漏洞类型 | SSRF(服务端请求伪造) |
| CWE 分类 | CWE-918 |
| 严重程度 | High |
| 影响版本 | kkFileView 4.2.0+ |
| 攻击向量 | GET /getCorsFile |
| Sink 位置 | server/src/main/java/cn/keking/utils/HttpRequestUtils.java:executeHttpRequest |
| 置信度 | 0.82 |
利用链(Source → Sink)
- 污点源:
GET /getCorsFile的 query 参数urlPath - 危险函数:
org.springframework.web.client.RestTemplate#execute(URI, HttpMethod, RequestCallback, ResponseExtractor),两个参数均需 Base64 编码,裸http:// 字符串会触发 IllegalArgumentException
使用示例
监测结果:靶场返回了 kkFileView 主页面 HTML(约 11087 字节),响应体内含 previewByUrl、fileSelectBtn、fileUpload 等前端特征代码,证明服务器在内部对 http://127.0.0.1:8012/ 发起了 HTTP 请求并回显响应体,构成典型 SSRF。
修复建议
- 统一
TrustHostFilter#getSourceUrl与OnlinePreviewController#getCorsFile的 URL 参数名。 - 在
getCorsFile内对最终 normalized URL 重新执行一次 TrustHost 校验(双保险)。 - 对内网 IP 段(
127.0.0.0/8、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、169.254.0.0/16等)做硬编码黑名单。 - 限制协议,只允许
http/https,拒绝file://、gopher://、dict://等。
注意事项
- 本漏洞仅在已授权的靶场环境中验证,请勿对未授权目标进行测试。
- 生产环境排查时,需同时检查过滤器与控制器对同一请求参数的解析顺序,避免”校验 A、使用 B”的经典参数混淆缺陷。
- Base64 编码为服务端强制要求,未编码的 URL 无法触发漏洞。
- 建议升级至官方修复版本,或参考上述修复点自行打补丁。
参考链接
- https://github.com/kekingcn/kkFileView
- https://cwe.mitre.org/data/definitions/918.html
仅限交流学习使用,如您在使用本工具或代码的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。“如侵权请私聊公众号删文”。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:柠檬赏金猎人 柠檬赏金猎人
柠檬赏金猎人《CVE-2026-88592:kkFileView 跨域文件代理绕TrustHostFilter 全解析》