刷爆朋友圈的“跳一跳”现惊天Bug 可直接更改分数

整个元旦假期,大家估计都盯着手机屏幕一直「跳一跳」,自从这个游戏出现整个朋友圈都嗨了。每隔一段时间刷新一下排名,我都能发现一些好友的名词往前浮动几位。很多网友疑惑,高分怎么跳,可是今天Canthink网络安全研究室发现,微信“跳一跳”存在Bug用户可以随意更改。甚至连微信小程序、小游戏的源代码都可以直接下载,只需要知道appid和版本号,就可以直接构造URL下载后缀为wxapkg的源码包,不需要任何验证。

下附改分攻略:

一、改分关键步骤

电脑安装抓包软件,手机设置https代理到电脑

将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

具体的步骤:

然后安装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! 就代表成功了。

安全专家还提醒:“虽然‘跳一跳’的下载代码漏洞已经修补,但是之前官方的源代码已经传播开了,别人拿去改一改,就可以出个自己的‘跳一跳’了,比如,可以拿‘跳一跳’的代码改一个游戏,叫‘跳跳跳’,然后夹带一些私货,发布个新游戏。”

如果这样,类似的新游戏是否有夹带恶意代码的风险?

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180103A07XPE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券