Slack网站上SSRF漏洞的挖掘和防护绕过
在我这篇文章开始前,我有两个重要的提示给想用漏洞赚钱的人。
一定要检查以前的漏洞报告,因为你可能会知道一些漏洞发现者不知道的绕过方式(就可以再次报告漏洞),又或者你可以学到一些新的东西。
如果你喜欢漏洞悬赏方面的内容,可以关注我youtube的频道Elber Trvares。
SLACK AND SSRF:
Slack是聊天群组+大规模工具集成+文件整合+统一搜索。截至2014年底,Slack已经整合了电子邮件、短信、Google Drives、Twitter、Trello、Asana、GitHub等65种工具和服务,可以把各种碎片化的企业沟通和协作集中到一起。 ——百度百科
斜杠命令
第一个SSRF漏洞在api.slack.com中,可使用斜杠命令(在聊天框输入/命令
来执行特定的操作,可以自己定制功能,特别是可以用来向指定的URL发起POST请求,)来绕过安全保护。
您可以在此处了解有关斜杠命令的更多信息:
Slack的一些特性,例如Integrations/Phabricator
和Integration/Slash Commands
,允许用户向后端服务器提交URL。而且具有黑名单,会禁止用户向内部资源发起访问,例如,loopback,10.0.0.0/8,192.168.0.0/24 等等
但是,我们可以使用[::]
这种形式的主机名来绕过这种黑名单。只有绑定所有接口并支持IPv6的服务才能这样访问。 ——用户agari_fr表示。
当然,在我上报后,Slack已禁止在斜杠命令中使用IPv6地址。
为了尝试绕过这个新防护,我用PHP中搭建了一个外网网站,代码如下:
index.php
<?php
header("location: http://[::]:22/");
?>
重点在于location: http://[::]:22/,它会自动进行跳转
然后登录Slack,在聊天框输入你定制的斜杠命令
输入我的外网网站http://hackerserver.com
结果:
:22
:25
7月13——第一次上报
7月18日——检验漏洞
1月23日——Slack奖励500美元的奖金。
在找到这个绕过漏洞之后,我决定在Slack中查找了更多的漏洞,并瞄准了事件订阅参数。
绕过事件订阅参数的SSRF保护
漏洞存在于“事件订阅”参数中,其中:
你的应用可以通过URL订阅你想收到的事件通知(例如,当用户添加响应或创建文件时)
网址:
https://api.slack.com/apps/YOUAPPCODE/event-subsc riptions?
当我们添加不符合这个API标准的站点时,会收到以下消息:
您请求URL返回了一个500错误。请更新你输入的URL。
这里我们还是通过IPv6的[::]
来绕过。
我的外网网页的代码如下:
<?php
header("location: ".$_GET['u']);
?>
PoC:
http://hacker.site/x.php/?u=http://%5B::%5D:22/
Response:
SSH [::]:22
SMTP [::]:25
我的这份安全报告一开始被认为和另一个漏洞重复,但我发现另一份报告与我的不同之处,所以我告诉Slack的安全团队,我应该得到奖励。
7月24日——再次上报
9月2日——确认
1月23日——Slack奖励500美元的奖金。
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/@elberandre/1-000-ssrf-in-slack-7737935d3884
最新评论