Slack的$ 1.000 SSRF
字数 1108 2025-08-26 22:11:22
Slack SSRF漏洞分析与绕过技术详解
1. 漏洞背景
Slack是一个广泛使用的团队协作平台,提供了多种集成功能。其中"斜杠命令"(Slash Commands)和"事件订阅"(Event Subscriptions)功能存在服务器端请求伪造(SSRF)漏洞,允许攻击者访问内部网络资源。
2. 漏洞原理
2.1 斜杠命令SSRF
Slack的斜杠命令功能允许用户注册自定义URL,当命令被调用时,Slack后端会向该URL发送请求。虽然Slack实施了黑名单机制阻止访问内部资源(如回环地址、10.0.0.0/8、192.168.0.0/24等),但存在绕过方法。
2.2 事件订阅SSRF
事件订阅功能允许应用订阅Slack事件通知,Slack会向用户指定的URL发送事件数据。同样存在SSRF保护绕过问题。
3. 漏洞利用技术
3.1 IPv6地址绕过
最初发现的绕过方法是使用IPv6地址表示法:
http://[::]:22/
其中:
[::]是IPv6的回环地址(相当于IPv4的127.0.0.1)22是SSH服务端口
这种方法可以访问绑定在所有接口且支持IPv6的内部服务。
3.2 修复后的绕过技术
当Slack禁用了直接注册IPv6地址后,研究者使用了PHP重定向技术:
- 在攻击者控制的服务器上创建index.php文件:
<?php header("location: http://[::]:22/"); ?>
- 在Slack中注册指向该PHP文件的URL:
http://hackerserver.com/
- 当Slack访问该URL时,会被重定向到内部IPv6地址
3.3 通用重定向技术
更通用的重定向脚本(x.php):
<?php header("location: ".$_GET['u']); ?>
使用方式:
http://hacker.site/x.php/?u=http://%5B::%5D:22/
(URL编码后的[::]为%5B::%5D)
4. 漏洞影响
成功利用这些SSRF漏洞可以:
- 访问Slack内部网络服务(如SSH、SMTP等)
- 扫描内部网络
- 可能进一步利用内部服务漏洞进行横向移动
5. 漏洞修复
Slack采取的修复措施:
- 禁用直接在斜杠命令中注册IPv6地址
- 增强SSRF保护机制,检查重定向链
6. 防御建议
针对类似SSRF漏洞的防御措施:
- 实施严格的白名单而非黑名单
- 检查并限制所有重定向
- 验证目标URL的解析结果是否为内部地址
- 使用DNS解析结果进行二次验证
- 限制请求的协议(如只允许HTTPS)
- 实施网络层隔离,限制内部服务的访问权限
7. 漏洞奖励
Slack为此类SSRF漏洞支付了\(500-\)1,000的漏洞赏金,具体取决于漏洞的严重性和利用难度。
8. 学习要点
- 始终检查目标系统之前的漏洞报告,可能发现可复用的绕过技术
- 当直接方法被修复时,尝试间接方法(如重定向)
- 一个功能的修复可能在其他功能中仍然存在类似问题
- 坚持自己的发现,当被误判为重复报告时要据理力争