没想到一个64.5k star
的项目之前居然对SSRF
一点防护都没有做。
/api/cors
端点作为一个开放代理的设计,允许未经身份验证的用户通过它发送任意的 HTTP 请求。这个端点似乎是为了支持将客户端聊天数据保存到 WebDAV
服务器而添加的。
帮助网安学习,全套资料S信免费领取:
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
我查看了最新的源代码:
具体的官方修复思路如下:
- **移除开放代理端点:**最终修复方案中,移除了原始的开放代理端点
/api/cors
。 - **替换为特定用途的端点:**取而代之的是添加了两个新的端点
/api/upstash
和/api/webdav
,这些端点具有特定的用途,分别用于与 Upstash 和 WebDAV 服务进行集成。这种替换的方式限制了端点的功能范围,并提供了更专门化的功能,有助于减少系统的安全风险。 -
增加安全验证和限制:
-
/api/upstash
- **限制目标URL:**修复代码首先通过检查请求参数中的
endpoint
来限制目标URL。它要求目标URL必须是以.upstash.io
结尾的有效URL,这样就限制了请求只能发送到特定的Upstash服务。 - **限制请求方法:**修复代码还对请求中的操作类型进行了限制。它只允许
get
和set
两种操作类型的请求,如果请求的操作类型不是这两种之一,则会返回403 Forbidden响应。
- **限制目标URL:**修复代码首先通过检查请求参数中的
-
/api/webdav
-
请求方法限制: 修复代码只允许特定的HTTP请求方法,包括
MKCOL
、GET
和PUT
。对于其他不允许的请求方法,如POST
等,会返回403 Forbidden响应。 -
目标路径验证: 修复代码对于不同的请求方法,会对目标路径进行不同的验证:
- 对于
MKCOL
请求,只允许请求目标路径为指定的folder
,如果请求的目标路径不是以指定的folder
结尾,则返回403 Forbidden响应。 - 对于
GET
请求,只允许请求目标路径为指定的fileName
,如果请求的目标路径不是以指定的fileName
结尾,则返回403 Forbidden响应。 - 对于
PUT
请求,同样只允许请求目标路径为指定的fileName
,如果请求的目标路径不是以指定的fileName
结尾,则返回403 Forbidden响应。
- 对于
-
请求方法限制: 修复代码只允许特定的HTTP请求方法,包括
-