1 月 2 日下午,著名安全团队“盘古”的安全专家向雷锋网宅客频道证实,微信小游戏“跳一跳”改分漏洞仍在,此前流传的“微信已补漏洞”是指已经修补了微信小游戏“跳一跳”的源代码下载漏洞。这意味着,改分依然可行。
为此,“盘古”旗下的移动安全威胁数据平台 Janus 为雷锋网出具了一份最新改分攻略:
一、改分关键步骤
电脑安装抓包软件,手机设置 https 代理到电脑
通过抓包软件,抓包拿到微信的 sesseion_id
将 sesseion_id 写入改分脚本,提交改分请求
二、详细教程
(1) 部署代理环境(mac 环境)
mac 下选用 charles 作为抓包代理软件(https://www.charlesproxy.com/),windows 用户可以用 fiddler (https://www.telerik.com/fiddler)。
安装好后运行起来,查看本机 IP 地址,以及软件提供的远程代理端口号:
charles 的顶部菜单 Proxy->Proxy settings
将手机接入与电脑同一个局域网的 wifi,然后在 wifi 的代理设置中,选择手动指定代理,代理服务器为电脑的 ip 及代理软件提供的端口号(如图中的 8888)。
电脑端会提示是否运行远程接入,点 allow 即可。
设置好了以后可以尝试浏览器打开 baidu.com,如果可以正常打开,并且在抓包软件中可以看到请求记录就完成了手机的代理设置。
由于是 https 的请求,需要在手机端安装证书才可以解密请求,charles 的证书可通过手机浏览器安装,手机浏览器访问 http://chls.pro/ssl,点继续访问此网站,会提示安装证书。
iOS 10.3 以上的系统版本,需要在设置→通用→关于本机→证书信任设置里面启用完全信任 Charles 证书。
配置好证书后可以打开 https://baidu.com 看看是否能解开百度的首页源代码。
(2) 获取 session id
https 配置完毕后,打开微信的跳一跳小程序,就可以看到抓包历史有一个带有 session id 的请求:https://mp.weixin.qq.com/wxagame/wxagame_init
在 request 部分就可以复制到 session_id 了。
(3) 将 sesseion_id 写入改分脚本,提交改分请求
目前开源的脚本是 nodejs 写的,git 地址:https://gist.github.com/feix/6dd1f62a54c5efa10f1e1c24f8efc417
具体的步骤:
新建个目录,比如:wxt1t,然后将脚本源码保存到这里,比如 hack.js。
然后安装 nodejs,可以通过官网下载安装包安装:https://nodejs.org/en/
然后在命令行 cd 到当前项目文件夹(wct1t),运行:
npm init --y
npm install crypto-js request-promise
然后用文本编辑器打开 hack.js,修改里面的 score(分数)和 session_id 变量的值即可。
命令行运行 node hack.js,出现 2018! Happy new year! 就代表成功了。
上述专家还提醒:“虽然‘跳一跳’的下载代码漏洞已经修补,但是之前官方的源代码已经传播开了,别人拿去改一改,就可以出个自己的‘跳一跳’了,比如,可以拿‘跳一跳’的代码改一个游戏,叫‘跳跳跳’,然后夹带一些私货,发布个新游戏。”
如果这样,类似的新游戏是否有夹带恶意代码的风险?
专家对雷锋网称:“小程序有审核机制,如果夹带了恶意代码,躲避审核后才能实现。现在小程序审核比较严格,尚不清楚其对恶意代码的审计力度。”