最近,我为一家著名的公司进行了一次安全测试。其中,有一个测试对象是用于youtube网站的音乐搜索、授权和管理平台。在测试过程中,我发现了一个表单,该表单是用于在用户的个人帐户中上传视频的。
但是,即使在上传视频这么简单的操作中,我竟然发现了两个严重的安全问题。
第一个问题是不受限制的文件上传。
在上传过程中,由于用户可以更改内容类型,因此,用户不仅可以上传视频文件,而且可以上传其他类型的文件。
POST /user/video/upload/submit/?ajax=1 HTTP/1.1 Host: www.redacted.com -----------------------------338208911492032229419126784 Content-Disposition: form-data; name="video"; filename="Demo.php"
实际上,加载php webshell是出于验证的目的。
使用webshell的PoC代码
不幸的是,加载了shell的页面的内容类型是plain/text header,并且,我们也无法使用Web Shell本身进行操作。但是这个问题仍然很严重,因为黑客可以上传危险的文件,并从受信任的域分发这些文件。
第二个问题是著名的ImageMagick SSRF漏洞。
当我发现无限制的文件上传问题后,我开始尝试上传和播放一个特制的播放列表。
实验表明,这个播放列表可以成功加载。几秒钟后,用于发送请求的页面的代码以预览的形式展示了出来。
之后,我通过ImageMagick请求主机验证是否存在SSRF攻击。
我的观点得到了证实:收到了一个发送给服务器的请求。
在这个例子中,User-agent中显示了容易受到这种漏洞攻击的UserMagick的版本。
GET /FFMPEG.avi?.txt HTTP/1.1 User-Agent: Lavf/56.40.101 Accept: */* Connection: close Host: 03e***d.ngrok.io Icy-MetaData: 1 X-Forwarded-For: 18.***.***.66
因此,从技术上讲,我能够通过视频中暴露的敏感数据向本地应用程序服务器发送请求。
由于上传的播放列表中存在SSRF漏洞,因此,我能够通过访问这些文件并进行重定向,来发动小规模的DDoS攻击。
收集了所有的事实之后,我向相关公司提交了相应的漏洞测试报告。但是,在发送报告后,我又发现所有文件都是存储在AWS S3存储桶中的,并且,这些文件的名称与为其进行渗透测试的公司无关。后来,我的客户通知我,所有的安全问题都将在一个月内修复完毕。但一个月后,音乐授权系统从服务提供商那里独立出来了。事实上,虽然这些漏洞的确从客户的应用程序中消失了,但仍然存在于服务提供商的应用程序中:因为我的客户并没有将这些漏洞提交给服务提供商。
根据S3桶的名称,我设法找到了一个服务提供商。我发现,上面提到的安全漏洞仍然存在于其大量的客户环境中。这些客户的名单包括华纳、索尼、环球等大型公司。
我很快通过LinkedIn找到这家服务提供商的相关负责人。同时,我还通过反馈表与能够解决这些问题的人取得了联系。当天,我就把所有的技术细节都发送给了他们。几天后,该服务提供商的首席执行官通过电子邮件与我联系,并通过PayPal帐户发送了奖金。
有时候,即使收到的奖金不多,也会令人非常愉快,特别是根本不是奔着奖金去的时候。
参考文献
https://hydrasky.com/network-security/exploiting-ssrf-in-video-converters/
https://github.com/cujanovic/SSRF-Testing
https://github.com/ffmpeg-test/ffmpeg-test
https://2017.zeronights.org/wp-content/uploads/materials/ZN17_yngwie_ffmpeg.pdf
https://www.securityevaluators.com/hlsconcat-subfile/
https://www.slideshare.net/MailRuGroup/security-meetup-22-mailru
https://habr.com/ru/company/mailru/blog/274855/
https://hackerone.com/reports/237381
https://docs.google.com/presentation/d/1yqWy_aE3dQNXAhW8kxMxRqtP7qMHaIfMzUDpEqFneos/edit
https://github.com/neex/ffmpeg-avi-m3u-xbin
https://hackerone.com/reports/302885
还没有评论,来说两句吧...