FormSec

逢魔网络安全实验室

就是这么简单,价值2W刀的Google存储型XSS和SSRF

Author:xfkxfk@逢魔安全实验室

前言

今天看到一篇文章《Stored XSS, and SSRF in Google using the Dataset Publishing
Language》
,同构造Google的DSPL格式数据包即可触发存储型XSS,同时利用DSPL的远程资源访问功能即可访问本地资源从而导致SSRF漏洞。

两个漏洞Google给力差不多2W美刀,真的是土豪,而且通过这个案例大家可以看到国内外,以及大厂小厂对待安全的态度,对漏洞的价值认知,已经对白帽子的认可是存在很大的差距的。同时最重要的是也向大家说明漏洞挖掘,赏金猎人也不是那么困难的,只要你认真努力细心就好。

漏洞详情

存储型XSS

Google Public Data Explorer是一个方便大数据应用扩展及可视化的工具,比如可视化展示医疗卫生数据,展示银行数据等,效果如图:

Dataset Publishing Language(DSPL)使用XML格式描述数据集的元数据信息并且使用CSV格式文件,示例数据可以从Google官方下载(下载地址见参考链接),然后解压之后就能看到数据数据文件了:

当我们下载示例文件并解压之后,编辑dataset.xml文件中描述元数据的名字,这里我们使用XML CDATA以免将我们的JavaScript payload解析为XML内容了,修改内容如下:

然后重新打包为zip文件,比如重新打包为sample.zip或者sample.dspl,然后在如下页面上上传打包好的文件:

上传之后,等一会刷新一下,然后点击共享设置,将此数据资源设置为Public on the web权限,最后你在访问这个资源链接的时候就会出发XSS,原因是直接将我们修改的info节点里面的名字直接返回了:

因为前面我们将资源设置为Public模式的,所以任何人都可以搜索并访问我们的资源,访问的时候就会执行XSS
payload导致被攻击。

SSRF漏洞

漏洞作者通过阅读DSPL的官方指南发现DPSL允许通过远程HTTP或者FTP的形式来获取数据,就是这个功能导致SSRF漏洞,从而可以访问内部资源,比如内网的数据资源和系统设备等。

同样修改dataset.xml文件,修改内容如下:

这里我们通过FTP来获取远程的数据,修改完之后,重新打包,上传,之后你会发现因为获取资源失败导致返回报错信息,泄露了本地SSH的指纹信息:

当然这里的SSRF还可以进一步利用,比如扫描端口,识别内网主机及服务等,还可以盲打内网漏洞从而进一步进行渗透。

披露时间表

Jan 2018: Reported to Google

Feb 2018: Verified that the reported issues were fixed

Feb 2018: Rewarded \$5,000 for Stored XSS

Mar 2018: Rewarded \$13,337 for SSR

总结

这两个漏洞看起来都很简单粗暴,并没有多少需要弯弯绕的利用技巧,直接将数据返回web前端;其次通过阅读官方文档熟悉业务功能,从而发现更多的存在漏洞的点,这就需要白帽子认真仔细的心态了。

参考链接

https://s1gnalcha0s.github.io/dspl/2018/03/07/Stored-XSS-and-SSRF-Google.html

https://developers.google.com/public-data/docs/cookbook#remote_data