Slack网站上SSRF漏洞的挖掘和防护绕过

iso60001  2103天前

22.jpg

在我这篇文章开始前,我有两个重要的提示给想用漏洞赚钱的人。

  1. 一定要检查以前的漏洞报告,因为你可能会知道一些漏洞发现者不知道的绕过方式(就可以再次报告漏洞),又或者你可以学到一些新的东西。

  2. 如果你喜欢漏洞悬赏方面的内容,可以关注我youtube的频道Elber Trvares。

SLACK AND SSRF:

Slack是聊天群组+大规模工具集成+文件整合+统一搜索。截至2014年底,Slack已经整合了电子邮件、短信、Google Drives、Twitter、Trello、Asana、GitHub等65种工具和服务,可以把各种碎片化的企业沟通和协作集中到一起。 ——百度百科

斜杠命令

第一个SSRF漏洞在api.slack.com中,可使用斜杠命令(在聊天框输入/命令来执行特定的操作,可以自己定制功能,特别是可以用来向指定的URL发起POST请求,)来绕过安全保护。

您可以在此处了解有关斜杠命令的更多信息:

Slack的一些特性,例如Integrations/PhabricatorIntegration/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

33.png

:25

44.png

7月13——第一次上报

7月18日——检验漏洞

1月23日——Slack奖励500美元的奖金。

在找到这个绕过漏洞之后,我决定在Slack中查找了更多的漏洞,并瞄准了事件订阅参数。

绕过事件订阅参数的SSRF保护

漏洞存在于“事件订阅”参数中,其中:

你的应用可以通过URL订阅你想收到的事件通知(例如,当用户添加响应或创建文件时)

网址:

https://api.slack.com/apps/YOUAPPCODE/event-subsc riptions?

当我们添加不符合这个API标准的站点时,会收到以下消息:

55.png

您请求URL返回了一个500错误。请更新你输入的URL。

这里我们还是通过IPv6的[::]来绕过。

我的外网网页的代码如下:

<?php
header("location: ".$_GET['u']);
?>

PoC:

http://hacker.site/x.php/?u=http://%5B::%5D:22/

Response:

SSH [::]:22

66.png

SMTP [::]:25

77.png

我的这份安全报告一开始被认为和另一个漏洞重复,但我发现另一份报告与我的不同之处,所以我告诉Slack的安全团队,我应该得到奖励。

7月24日——再次上报

9月2日——确认

1月23日——Slack奖励500美元的奖金。

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/@elberandre/1-000-ssrf-in-slack-7737935d3884

最新评论

昵称
邮箱
提交评论