酷狗铃声xss漏洞

特征

朋友圈假冒红包转发

虽然我是肯定不会信的,但是家里的长辈就不一定了。
更有意思的是,下滑页面你会看到显示的是酷狗的域名。


所以带着疑问我就稍微深入了一下。

怎么实现的?

提取分享地址:http://ring.kugou.com/share/31aa008507d549ec80d849824d856bf9

chrome上审查元素

可以看到这里请求了一个非酷狗域下的域名,问题来了,这个域名从哪而来?

查看html代码

可以看到是在title里面注入了,导致浏览器渲染时加载了新的html

title从哪来?

title肯定是名字了,但是不会是本地文件的名字,你可以尝试输入<>这类的字符,手机会提示出错。
所以这个名字肯定是后期提交的时候没做转义被带上去的。

找APP

酷狗音乐N多年没用了,看域名前缀貌似是铃声的意思,打开酷狗首页,找到了铃声的二级域名,随后下载APP尝试 xss 注入。

xss 入口


上面2张图分别是上传自己制作的铃声输入歌名时的xss入口,以及自己的昵称也可以进行xss。

有意思的是,昵称限制了20个字符,所以我只能尝试用始作俑者的域名,结果成功了,验证了可行性。

其次,酷狗对于还在审核的铃声并没有禁止分享操作,所以即便我的铃声还在审核阶段,但是我可以分享了,审核机制形同虚设。

分析动作

  1. 注入一个域名
  2. 通过域名下发js脚本
  3. 脚本请求百度对象存储上的静态资源,如html文件
  4. 请求的html文件可以执行任意的js以及php等
  5. 最终执行的js监听hashchange,通过document.write写入unescape后DOM节点
  6. 写入的DOM是各种广告

目的是什么?

分享红包利用了人性的贪婪,本质上是为了提高曝光度,引流。

流量来了之后,当你点击返回时,加载预设的广告内容达到曝光目的。

总结

一大早花了3个小时研究这个东西,以往都是看了别人的栗子,这次自己分析了一下,发现还是蛮有意思的。

xss的危害程度视场景而定,这里借助了微信朋友圈传播,达到的效果应该是很不错的。不过这个作者连域名WHOIS都没有保护,分分钟被爆菊的节奏啊… 名字邮箱一查就有,这个就很尴尬了….

顺便推荐一个域名注册商,自带 WHOIS 保护:

点我直达