详解Synack发起的一次漏洞赏金计划

  • A+
所属分类:安全文章

详解Synack发起的一次漏洞赏金计划

详解Synack发起的一次漏洞赏金计划

Synack是一家以众包模式替商业公司进行网络安全和系统漏洞测试的创业公司,根据每一家公司的预算以及技术条件,Synack首先会对该公司的系统安全指数进行一个初步评估,然后根据评估结果,为该公司推荐研究员来进行相符的漏洞测试。

在过去的几个月里,Synack开展了一次漏洞赏金计划,名为Red vs Fed。从名称中就可以推断,这次漏洞测试的重点是对美联储进行渗透测试。对于那些不熟悉Synack的人来说,它是一个拥有漏洞奖励式支付系统的众包黑客平台,黑客从全球各地招募,通过Synack基于vpn的平台执行渗透测试服务。

红色与美联储

测试开始一个月后,测试人员通过在美联储的一个终端上发现了Burp Intruder(用于自动对Web应用程序自定义的攻击,Burp Intruder 是高度可配置的,并被用来在广范围内进行自动化攻击)。测试人员在目标范围内的服务器上发现了一个新的虚拟主机,即一个新的web应用程序。当他们遇到一个新的应用程序时,要做的第一件事就是为下一轮终端枚举调整wordlist。为此,测试人员使用了在页面源中定义的终端,包括javascript文件,以及命名中常见模式的标识,例如prefix_word_suffix.ext。

详解Synack发起的一次漏洞赏金计划

测试人员一开始只是找到了一个简单的SQL注入漏洞、冗长的漏洞消息、使用数据库名、表名和列名的实际SQL查询。后来经过深入分析,他们又整理了一个POC(后面将进行讨论),并报告了一些其他的SQLi漏洞。有了这个Web应用程序之后,测试人员开始在新的子域中寻找其他虚拟主机,以期找到类似的易受攻击的应用程序。

通过使用上次的web技术,测试人员在不同的子域上发现了另外两个Web应用程序,且漏洞相似。

新发现的漏洞并没有什么新鲜的,只是有很多侦察和终端枚举。测试人员开始在显示承载多个web应用程序的域上强制使用vhost,试图找到新的vhost。过了一段时间,测试人员在一个新的vhost上偶然发现了一个新的web应用程序。该应用程序似乎具有分解为3个不同分组的功能,与之前发现的漏洞类似,测试人员遇到了与访问控制、PII泄漏和未经授权的数据修改的各类型漏洞,他们从超过20个终端中提取了几十个漏洞。这些漏洞分别为:

1. 用户帐户状态修改(自动激活/验证绕过,任意帐户锁定);

2. 个人验证信息的泄漏;

3. 具有NIST SP 800-53要求的目标上的用户登录枚举;

4.  Phpinfo页面;

5. 验证绕过/访问控制漏洞,网站登录门户后面的终端允许实时查看CC feed,并具有以下内容:

详解Synack发起的一次漏洞赏金计划

6. 未经身份验证的按需重新启动网络保护设备:

详解Synack发起的一次漏洞赏金计划

测试人员浏览应用程序之后,发现目标是一个已经经历过类似pentests的测试环境。它包含了一年前丢弃的持久的XSS有效载荷。这些“以前的”漏洞充当了转移注意力的角色,因为即使有效载荷持续存在,应用程序也不再容易受到它们的攻击。测试人员认为他们的时间也很紧张,因为测试的时间是24小时。不幸的是,在测试开始的几个小时内,目标变得非常不稳定。服务器虽然没有宕机,但几乎不可能登录,定期返回一条不可用的消息,就像被DOS编辑一样。

详解Synack发起的一次漏洞赏金计划

文件预览端点包含一个指定文件名和mimetype的参数。修改这些参数会更改响应的Content-Type和Content-Disposition(无论响应是显示还是下载)标题。

详解Synack发起的一次漏洞赏金计划

在24小时内,测试人员已编写并提交了漏洞。由于永久XSS在Synack上具有更高的收益和更高的CVSS分数,因此测试人员选择此漏洞类型,而不是任意文件上传。在提交之后的几个小时,发布公告,由于前一天晚上该应用程序不可用(可能是DOS),因此24小时规则将延长12小时。经过更多的探索之后,研究人员发现了一个终端,该终端使用自定义XML格式将记录导入到数据库中。此类功能是XXE漏洞的主要发现手段,经过一些测试,研究人员发现它确实容易受到盲注目XXE攻击。XXE漏洞非常有趣,因为它们可以提供各种利用原语。不过这取决于XML解析器的实现,应用程序配置,系统平台和网络连接,这些漏洞可用于任意文件读取,SSRF甚至RCE。利用XXE的最有效方法是,如果你具有要解析的对象的XML规范。不幸的是,对测试人员而言,他们所攻击的XML文件格式的文档位于范围之外的登录页面的后面。

详解Synack发起的一次漏洞赏金计划

由于无法使LFI正常运行,因此测试人员使用XXE在内部服务器上执行端口扫描,以确保至少可以将漏洞提交为SSRF。测试人员将有效载荷插入了Burp Intruder,并将其设置为枚举所有打开的端口。

详解Synack发起的一次漏洞赏金计划

在为SSRF编写报告后,测试人员确推迟了提交,希望可以读取任意文件(LFI)并可能实现远程代码执行。不幸的是,这次服务器再次开始变得不稳定。连续多次,好像有人在用DOS引导目标。

测试人员在XXE上花费了几个小时,但没有任何实际进展。测试人员决定在延长的24小时规则到期之前继续提交,以希望再次确保至少有机会赢得可能的漏洞奖励。毫不奇怪,几个小时后,由于DOS,测试再次失败。

详解Synack发起的一次漏洞赏金计划
SQL注入

SQL注入漏洞是测试人员在漏洞奖励测试中发现的最普遍的漏洞,与其他漏洞奖励平台不同,Synack通常需要完全利用发现的漏洞才能获得全额付款。使用SQL注入,通常要求数据库名称、列、表和表转储“证明”利用,而不是基本注入测试或SQL漏洞。虽然测试人员可以在几个终端上轻松地使用sqlmap,但是一些更复杂的查询需要自定义脚本从数据库转储数据。根据测试人员的经验,大部分现代SQL注入漏洞都是盲注的,之所以这样说,是因为无法在请求响应中从数据库返回数据的SQLi 漏洞。也就是说,还有不同种类的盲注SQLi。有些漏洞会返回漏洞消息,有些则不会。盲注通常都是专门为了对付目标页面错误处理的比较好的这种情况,也就是说,有时即使目标存在注入,因为在页面上没有任何回显,此时再想利用常规的 union 曝数据字段可能就不大现实了,于是后来就被人发现了盲注这种技巧。第一个POC是一个HTTP GET、基于时间的布尔型攻击的例子,用于Oracle数据库上的一个完全盲注的SQL注入漏洞。这个POC和前面github存储库中的示例之间的主要区别是下面的SQL查询。

详解Synack发起的一次漏洞赏金计划

返回的表是字符串类型的两列,该查询针对提供的字符限制执行布尔测试,如果测试通过,那么数据库将为指定的超时而休眠,然后测量响应时间以验证布尔测试。

第二个POC是针对Oracle数据库上的部分盲注SQL注入漏洞的HTTP GET、基于漏洞的布尔型攻击示例。此POC的目标是一个漏洞,该漏洞可能被迫生成两个不同的漏洞消息。

详解Synack发起的一次漏洞赏金计划

如果在目标系统上禁用了“ UTL_INADDR.get_host_name”函数,则有效载荷会强制执行用于布尔测试的漏洞消息。两个POC都使用下面的二进制搜索算法一次从数据库中提取一个字符字符串。

详解Synack发起的一次漏洞赏金计划

远程执行代码(无限制地上传文件)

测试人员的发现中可能最有趣的一个是测试人员为文件上传终端发现的文件扩展名黑名单绕过,这个特定的终端位于ColdFusion服务器上,并且似乎没有定义allowedExtensions,因为测试人员几乎可以上传任何文件类型,测试人员说这可能是因为一小部分扩展被以下漏洞阻止了。

详解Synack发起的一次漏洞赏金计划

进一步的研究发现,直到有人将其报告为漏洞并将其发布为CVE-2019-7816时,才允许上传任意文件类型的功能。Adobe发布的补丁程序创建了一个危险文件扩展名黑名单,这些文件扩展名不能再使用cffile upload上传。

详解Synack发起的一次漏洞赏金计划

这让测试人员开始思考,如果存在黑名单,那么就有可能被绕过。测试人员在Google在搜索到了一个大文件扩展名列表,并将其加载到Burp Intruder中。遍历列表后,测试人员查看了结果并发现了“ .ashx”扩展名中的500漏洞,以及一条消息,显示正在执行测试人员的文件的内容。在google上搜索了一下之后,测试人员用这个来自互联网的简单的ASHX webshell替换了测试人员的文件,并向其传递了命令,如下所示,漏洞终于被利用了。

详解Synack发起的一次漏洞赏金计划

参考及来源:https://www.securifera.com/blog/2020/06/25/synack-red-vs-fed-competition-2020/

详解Synack发起的一次漏洞赏金计划

详解Synack发起的一次漏洞赏金计划

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: