*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
6月8日12点29分,鹅厂旗下明星产品“QQ空间”发出一条“卖片”说说。就在说说发布第二天,微视超越抖音,首次登顶中国App Store免费榜。而这一切,都要从张一鸣的那条朋友圈说起......
QQ空间翻车现场
“QQ空间”多年之后,再登微博热门话题榜
中国App Store免费榜
又一场神仙斗法
5月8日,张一鸣在微信发布了一条朋友圈,晒出了旗下应用抖音国际版“Tiktok”2018第一季度在苹果商店下载全球第一的截图,并附言 “celebrate small success” 。本来秀一波完事,但是在自己朋友圈底下发一条 “微信的借口封杀 微视的抄袭搬运 挡不住抖音的步伐” 就不一样了......
朋友圈作为互联网第一大秀场,大佬们也未能免俗
圈子就这大,去年还在一个饭桌上,今年朋友圈指名道姓怼鹅厂,而且还是你抖音海外应用市场排名第一。对于鹅厂而言,能忍?
"东兴局"上,马化腾右手第三位就是张一鸣
来源:视觉中国
一场神仙斗法,在所难免......
黑产 or 炒作 ?真相到底是什么
而就在卖片广告发出后不到一个小时,官方发布声明,先不看内容,就这速度,尽显大厂的公关能力。然后Magiccc就看到黑产了,这个在Magiccc文章中出现频率最高的字眼,如今出现在了鹅厂声明中,这意味着什么?
谁能解释一下“业务逻辑漏洞”
为此Magiccc又找到曾经混黑产圈的老师傅,请教如何黑掉一个QQ号,顺便发个说说卖个片什么的。结果被老师傅一顿鄙视,其实要让你的QQ空间发个卖片的说说,我们压根不需要盗号那么麻烦,分分钟教你做人......
方法一:获取授权
有一个场景,大家一定不会陌生。现在互联网产品越来越多,每个人注册的账号也越来越多,为了优化大家的体验,不至于每个产品都要重新注册一遍账号。许多平台推出了授权登录,比如:QQ、微信、微博以及邮箱等,大家无需重复注册,一键授权即可。但是,很少有人会留意这一键登录背后,第三方平台已经掌握了我们大量隐私信息,其中就包括“让第三方获得可以借助我们的空间推送广告的权利”。
但是这个其实大家都在做,包括鹅厂,所以除非鹅厂空间官方账号运营人员在大中午看小电影授权给第三方又忘记切换账号的小概率事件反生,不然“获取授权”导致卖片广告发布几率约等于零。
“发表分享到QQ空间” 目前是模块权限中的标配
方法二:空间钓鱼
与第一种不同,外挂木马简单粗暴,速度快。符合黑产的核心价值观,所以在老师傅口中,这类手段才是主流。
级别低一点的,一般通过在QQ空间等平台推广钓鱼链接,诱惑他人领红包、登录色情网站等方式盗取QQ号。一旦点击链接,输入了QQ账号和密码,网站后台就会记录下来,一般黑产是不会下功夫去登录你账号发说说。这些账号,在黑市上供不应求,一个高质量的一手账号甚至可以买到5-10元不等。老师傅告诉Magiccc,去年有个大学生就用这个,半年多搞了200万QQ号,最后搞太狠了,被公安查了。
因为低级无门槛,所以上面的方式转化率很低。所以,像老师傅这类黑产人员,会下功夫仿制钓鱼页面,比如:完全模仿QQ登录的样式,做一个QQ相册登录页面,几乎可以以假乱真。然后,在你点进去以后,提示你快捷登录失效,要求你重新输入帐号密码,一旦你输入自己的帐号密码,就会直接发送到该钓鱼网站所有者的后台数据库里面,然后登录你的QQ账号密码继续群发给你的好友。
钓鱼的方式几率的确很大,鹅厂运营人员如果安全意识不够高,被盗取信息也不奇怪。只是,Magiccc觉得鹅厂好歹是拥有Pwn2Own2017冠军团队科恩实验室的大厂,被钓鱼盗号未免......
方法三:平台漏洞
上面说了,在卖片广告说说发出后不到一个小时,鹅厂发布声明,表示平台“业务逻辑漏洞”被黑产利用导致了此次卖片广告的发声。按照官方说法,Magiccc求证了老师傅,还别说,鹅厂家漏洞还不少,光利用平台漏洞在QQ空间发广告的事儿就不算新鲜事!是人家黑产人士早在2015年就玩剩下的产物......
猎豹团队就在15年通过Freebuf曝光过,以下是当时的文章内容摘录:
“转发机制
腾讯地图的一个实时竞价页面存在一个XSS漏洞,由于没有对请求参数做严格检查,通过精心构造的请求数据导致返回信息中的数据可被利用来执行js代码,同时服务器没有对请求来源进行检测,因此可以造成CSRF攻击。
查看之前抓取到的利用该漏洞进行不良信息转发的页面,在该页面开头嵌入了一个iframe标签如下:
标签style为隐藏属性,从而使得该插入页面不会被用户发现,插入的页面链接就是构造好的url地址。
当页面被加载时,页面通过这个url接口向腾讯地图的RealTime Bidding服务器发送一个请求,服务器没有对请求来源进行效验,直接将请求的数据返回,并附带了一些查询信息,如下图所示,其中exploit是构造的利用代码。
当exploit = “</script><svg><script>eval(window.name);//”,请求服务器之后iframe标签里的内容就变成下边的内容:
利用代码中的标签“</script><svg><script>”用于绕过浏览器的XSS过滤器,浏览器会将这三个标签忽略掉只留下后边的内容,然后第一个注释符号将后边的内容都给注释掉了,最后的有效内容就一句:eval(window.name)。之后eval会将字符串name里边的内容当作js代码执行,其执行结果就是在文档结尾创建<script></script>标签去加载执行js主功能模块http://conf3.gamexm.net/moo.js。
主功能js部分代码如下所示:
该js代码做了混淆,其按照OlOlll=”(x)”的方式进行替换,我们还原第一部分代码为:
eval("var l = function(x){return String.fromCharCode(x)}");
该处生成一个函数I,其功能是返回数字对应的ascii码,下边利用该函数将一些数字还原成新的函数,依次类推,最后解出来的功能代码如下所示:
代码通过document.cookie获取用户的cookie信息,然后从中提取uin值和skey值,通过抓包可以看到,uin值是由o开头加上QQ号组成,因此相当于就获取了用户的QQ号,skey是以@开头的一段字符。之后调用函数document.createElement创建了一对script标签来执行如下脚本:
其中参数q是QQ号,k为skey的值,getGTK(str)是为了给skey签名,这样可以确保skey是有效的。该脚本把获取到的QQ号和skey值通过附加到链接参数提交给远程服务器。
利用Skey进行敏感操作
Skey 是一次性口令,服务器为每个用户建立一个skey作为用户的权限代码,服务器验证该值即可获取用户的一些权限操作,该值会被浏览器记录在cookie信息中,只要用户不退出登录就会有效。也就是说如果获得一个QQ号码的Skey代码,也就相应的拿到了对方QQ登陆和管理权限,通过调用相应的操作接口API,即可不通过用户密码实现对用户空间,相册的访问权限,同时也可以发表说说,删除留言等一些敏感操作。
下边进行一个简单的测试来实现在QQ空间发表状态。
首先通过抓包获取到cookie信息中的uin值和skey
然后我使用curl命令通过发表说说的api向服务器发送一个包,包内容如下:
Curl命令执行过后,会在我的空间就自动发了一条说说:this is a test ”
黑产费了这么大劲,然后用QQ空间官方号发条卖片的说说,这个动机令人费解。所以,网上出现了某些阴谋论,直指鹅厂官方自导自演,目的就是给微视导流。对于这点,Magiccc还是相信鹅厂的,之前不是有篇文章说,鹅厂内部各项目各自独立,为了给微视让QQ空间背负卖片涉黄的风险,你是负责人你会答应?
自媒体人质疑鹅厂炒作
一场闹剧过后,信息安全不应被刻意回避
不管是授权也好,钓鱼也罢,亦或是漏洞攻击,黑产的确对我们的个人乃至企业造成了极大威胁。而Magiccc看到的是,大家当笑话看过之后,该干嘛干嘛,似乎QQ空间事件只是生活小插曲,并无大碍。
所以,就在QQ空间卖片广告事件后的周末,Magiccc看到了这位兄弟的遭遇:
这位兄弟直接将微信账号密码给到玩游戏认识的人,辛亏家人及时电话提醒,后来发现超过10位朋友向对方提供的二维码打钱转账!安全意识几乎为零......
最后,Magiccc给大家一个核查自己授权历史明细的平台,大家可以根据情况,自行解除某些风险授权。
文章参考:Freebuf《技术揭秘“QQ空间”自动转发不良信息》
*本文作者:GEETEST极验(geetest_jy ),转载请注明来自 FreeBuf.COM