前言
本文主要记录一次我们在复盘嘶吼网站渗透报告时遇到的一个SSRF漏洞。此漏洞并结合腾讯云的API接口,可以获取大量嘶吼服务器的敏感信息。利用这些敏感信息,又可以进行更为深入的渗透。
这篇文章将会发表在嘶吼网站上,渗透测试也是经过了嘶吼的官方授权,各位读者可以放心食用。这里由衷感谢漏洞的提交者。本篇中提到的漏洞已于年修复完毕,大家就不要再尝试了,此外,温馨提示:未授权的渗透行为是非法的。
漏洞介绍
SSRF(Server-SideRequestForgery,服务器端请求伪造)是一种由攻击者利用服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问,仅能通过内网访问的资源。SSRF形成的原因可以概述为:服务端提供了从其他服务器获取数据的功能,但没有对目标服务器做任何限制。上述概念听起来有点难度,我们举个例子就能让问题更为清晰:部署在腾讯云的服务器,是可以访问腾讯提供的一个API接口,获取该服务器的内网地址。我们自己的计算机不在腾讯云的内网中,自然是无法访问这个地址的。老版的嘶吼服务器存在一个SSRF漏洞,我们可以构造特殊的HTTP请求包,使老版嘶吼服务器访问腾讯云的API接口获得内网地址,并把这个地址返回给我们。这就造成了内网地址的泄露,当然利用此漏洞还可以泄露更多的东西。但作为一群爱国青年,我们不能做违法的事情。所以,例子就到此结束。
老版的嘶吼站点中引用了一个开源的编辑器项目laravel-u-editor(UEditor)。该编辑器是由百度web前端研发部开发的富文本web编辑器,拥有不小的使用量。
通过阅读UEditor的源代码,我们可以在LumenController.php发现,参数$sources完全可以自己控制。代码如下:
而且,在对$sources的值进行判断时,其代码也有些简单,可以在UploadCatch.php中找到关键点,如下图:
因此,可以通过“?.jpg”绕过这个判断,导致读取任何格式的内容。
漏洞利用
正如在我们在第一章中举的例子,这里我们就获取一下嘶吼服务器的内网地址试一试。其具体步骤如下:
A.首先,我们要查看下腾讯云提供的API内容。链接如下: