V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
bravecoder

微信跳一跳 可以直接更改分数, POST 请求没有校验… 🤪

  bravecoder · Dec 31, 2017 · 95138 views
This topic created in 3038 days ago, the information mentioned may be changed or developed.

这两天逛 v 站出现了一众微信跳一跳 'AI',已经被刷屏了……

大致思路都是通过计算两点距离,模拟点击起跳来方式来实现的,

可是作为不越狱的苹果党,手里又没安卓机,看着被刷屏刷榜,非常不爽啊

想着抓个包看看能不能模拟下网络请求刷分,结果 ……

发现可以直接伪造 POST 请求刷分

https://gist.github.com/feix/6dd1f62a54c5efa10f1e1c24f8efc417

Supplement 1  ·  Dec 31, 2017
目前比较麻烦的是

- [ ] 需要先抓包拿到 sesseion_id
- [ ] 分数最高只能设置为 999,还未找到为啥 🐶

### 如何抓包:

1. 下载最新 [charlesproxy]( https://www.charlesproxy.com/download/)
2. 启动 charlesproxy
3. 配置代理: 设置 > 无线局域网 > 配置代理 > 手动 > IP:电脑 ip,端口:8888
4. 导入 https 证书: 浏览器访问 http://chls.pro/ssl 下载安装证书
5. 启动跳一跳小程序
6. 去 charlesproxy 里查看抓到的请求, https://servicewechat.com/ 域名的请求,请求体里就包含 session_id

### 突破 999 的分数限制

Just for fun !


另外附上两个个有意思的点:

### 如何下载小程序源代码
```bash
wget http://123.125.9.32/resstatic.servicewechat.com/weapp/release/{appid}/{version_num}.wxapkg
```

{appid} 为小程序码, {version_num} 为 版本号,示例:
http://123.125.9.32/resstatic.servicewechat.com/weapp/release/wx7c8d593b2c3a7703/3.wxapkg

### 如何解析 wxapkg 文件:
Supplement 2  ·  Jan 1, 2018

更正写错的地方

感兴趣的可以把 小程序 的代码下下来,解包在本地运行玩玩

  1. 用 微信开发者工具新建小游戏,选择空的项目目录,game4fun
  2. wget http://123.125.9.32/resstatic.servicewechat.com/weapp/release/wx7c8d593b2c3a7703/4.wxapkg
  3. python2 unwxapkg.py 4.wxapkg
  4. cp 4.wxapkg_dir/* game4fun/
  5. 重启微信开发者工具后就可以在电脑上运行 跳一跳

game.js 文件可以用 chrome 调整后再看,逻辑其实蛮清晰的

Supplement 3  ·  Jan 1, 2018

好消息,拿 JS 重撸了一遍逻辑,发现 999 这个限制没了,也就是可以任意刷分了……

https://gist.github.com/feix/6dd1f62a54c5efa10f1e1c24f8efc417#file-wx_t1t_hack-js

大家悠着点玩 😜

Supplement 4  ·  Jan 1, 2018

鉴于留言区有贴 session_id 求组的,增加一个附言: session_id 为 base64 字符串, 示例如下

zmprIsSEt/dxWNTH4iyU4V2uM7p8DTQWg1Op+dR0hwbvBW2bl00IHXuIGssPGoMeydL0thdRoxXa9MWqX1xEbDvk+o+1rLiihz0VDhUgbprjLVC4qBqiUQF54c061IhJ1JjBy79dI2xWYs0G9oyI9A==

session_id 和微信账号相关联, session_id 公示或提供给他人 都是有账号安全风险的

Supplement 5  ·  Jan 2, 2018

虽然 CDN 方式下载失效了, 原链还是可以下载的,各位 ……

https://servicewechat.com/weapp/release/${appid}/${version_num}.wxapkg

416 replies    2018-01-22 10:49:10 +08:00
1  2  3  4  5  
0110
    301
0110  
   Jan 3, 2018
手动翻页!测试成功!
crs0910
    302
crs0910  
   Jan 3, 2018
@0110 现在应该不行了
fsql
    303
fsql  
   Jan 3, 2018
下了版本 id 为 5 的小程序解包看了下,action_data 的加密算法变了,但这种混淆过的 js 看起来太吃力了。没弄出加密算法来。
jinue9900
    304
jinue9900  
   Jan 3, 2018
@Aaronxdd 这个要翻墙的
qq125741252
    305
qq125741252  
   Jan 3, 2018
{"base_resp":{"errcode":108}}
VVTA
    306
VVTA  
   Jan 3, 2018
@odirus 其实你的想法是对的,它还是忽略了证书校验,你可以看看 SSLPIN 等技术,就知道,如果有校验,用 charles 等证书还是不让抓包的
VVTA
    307
VVTA  
   Jan 3, 2018
@idisreg 你好,自选股的代码可否发一份呀?想看看它的一些实现.现在好像下载不了了.多谢
he583899772
    308
he583899772  
   Jan 3, 2018
分数没变了,已失效。别折腾了
u6573861
    309
u6573861  
   Jan 3, 2018
@fsql 有源码,可以发我研究下算法嘛
F0r3v3r
    311
F0r3v3r  
   Jan 3, 2018
不能用喽,难道是手法不对。。。
Ruzdz
    312
Ruzdz  
   Jan 3, 2018
包已下好,怎么样解密???
mmp123
    313
mmp123  
   Jan 3, 2018
@Ruzdz 用微信小程序开发工具打开
Clarencep
    314
Clarencep  
   Jan 3, 2018   ❤️ 4
@bravecoder 你们刷得太厉害了,现在貌似微信加了检查
@F0r3v3r 现在好像刷 666 都出错了,不过刷低一点的分数还是可以的。

可以试试我这个代码 -- 参考了下 LZ 的代码,修改为 async 版本的,增加了随机 sleep,需要新版本的 node 来运行:

https://gist.github.com/Clarence-pan/e809ecd83dc4f3c8aeb2b71f3fffbf48
yy1300326388
    315
yy1300326388  
   Jan 3, 2018
@Clarencep 怎么升级到最新的 node
hinate
    316
hinate  
   Jan 3, 2018
其实 iOS 可以使用 thor 这款 app 来进行抓包,很简单就可以抓取到所需要的信息了。
yy1300326388
    317
yy1300326388  
   Jan 3, 2018
@Clarencep 测试可用,补充 node 升级方法: http://blog.csdn.net/su_tianbiao/article/details/51798666
Ruzdz
    318
Ruzdz  
   Jan 3, 2018
@mmp123 打不开。
zeex
    319
zeex  
   Jan 3, 2018
@yy1300326388 高分都报错,应该是加了条件限制
skyblue
    320
skyblue  
   Jan 3, 2018   ❤️ 2
对比各种外挂,这算降维攻击了
zeex
    321
zeex  
   Jan 3, 2018
@Clarencep 测试的最高分是 523 分,多 1 分都不给
DuckyDog
    322
DuckyDog  
   Jan 3, 2018
求教下。。wxapkg 怎么解出里面的东西?
ycmchong
    323
ycmchong  
   Jan 3, 2018
@Clarencep 高分不行
simapple
    324
simapple  
   Jan 3, 2018
安卓 抓不到,ios 可以,有安卓成功抓到 sessionid 的么?
hujinhu
    325
hujinhu  
   Jan 3, 2018
现在刷完分数也不是马上更新了。
hyndaniel
    326
hyndaniel  
   Jan 3, 2018   ❤️ 1
@Clarencep 老铁 666
hyndaniel
    327
hyndaniel  
   Jan 3, 2018   ❤️ 1
@Clarencep 我随机测试了 6W 多分 是可以的 等了十几分钟
wonkeyz
    328
wonkeyz  
   Jan 3, 2018
@hyndaniel 大佬求教 抓到 sessionid 之后就不知道怎么搞了...
hujinhu
    329
hujinhu  
   Jan 3, 2018
@hyndaniel 怎么随机
DuckyDog
    330
DuckyDog  
   Jan 3, 2018
@hyndaniel 老哥现在还能改?
newmlp
    331
newmlp  
   Jan 3, 2018
用辅助刷了 2k 多分,好像没有更新
wonkeyz
    332
wonkeyz  
   Jan 3, 2018 via iPhone
@0110 大佬求教 拿到 sessionid 后不知咋弄了...
mioskj
    333
mioskj  
   Jan 3, 2018
version 要改成 9 吗
techart
    334
techart  
   Jan 3, 2018
现在的 appid 好像看不了
hyndaniel
    335
hyndaniel  
   Jan 3, 2018   ❤️ 1
@wonkeyz
@DuckyDog
用 @Clarencep 的脚本,增加了游戏时间,需要填写正确的 session 及 version,亲测可以用的
hjuj91
    336
hjuj91  
   Jan 3, 2018
@hyndaniel 现在 path 和 data 变成什么了呢。。。求教
XiaolinLeo
    337
XiaolinLeo  
   Jan 3, 2018
@hyndaniel 请问分数是不是最多在 500 左右
GabrielChen
    338
GabrielChen  
   Jan 3, 2018
@XiaolinLeo 我现在只能刷到 500 多
hyndaniel
    339
hyndaniel  
   Jan 3, 2018   ❤️ 1
@hjuj91 他脚本里的 path 和 data 是正确的,不用修改啊。。
hyndaniel
    340
hyndaniel  
   Jan 3, 2018   ❤️ 1
@XiaolinLeo 我拿小号刷到 6W 多 没问题的
XiaolinLeo
    341
XiaolinLeo  
   Jan 3, 2018
@hyndaniel 请问除了 viu 改 session,version 要修改成多少? 9 么
819916913
    342
819916913  
   Jan 3, 2018
@Clarencep 用他这个代码 https://gist.github.com/Clarence-pan/e809ecd83dc4f3c8aeb2b71f3fffbf48
const version = 5
const score = 6666
const playTimeSeconds = score * 0.3
改成 0.3 左右 6666 分等半小时 ok
node 版本 8.9.3 测试
XiaolinLeo
    343
XiaolinLeo  
   Jan 3, 2018
@GabrielChen 我测试的也是
hyndaniel
    344
hyndaniel  
   Jan 3, 2018   ❤️ 1
小号刷了 10W 没问题哟
XiaolinLeo
    345
XiaolinLeo  
   Jan 3, 2018
用楼主的,取消这段注释,亲测可用
// for (var i = 0; i < score; i++) {
// action.push([0.752, 1.32, false])
// musicList.push(false)
// touchList.push([185, 451])
// }
aiweiyang
    346
aiweiyang  
   Jan 3, 2018 via Android
@fadaixiaohai 嗯 微信做出啦限制
zhaoyongyan5177
    347
zhaoyongyan5177  
   Jan 3, 2018
@hyndaniel 刷 2018 怎么调呢
aino
    348
aino  
   Jan 3, 2018
@hyndaniel 大佬能给个 Base64 的号码出来 我们线下交流下子不
DuckyDog
    349
DuckyDog  
   Jan 3, 2018
errcode: 108 了。。。
nerozhu
    350
nerozhu  
   Jan 3, 2018
用的 @Clarencep 的代码,显示成功了。但是微信里面的排行榜没变化。
NotNil1
    351
NotNil1  
   Jan 3, 2018
2018 年 1 月 3 日 15 点 37 分测试已经不可用了
nerozhu
    352
nerozhu  
   Jan 3, 2018
重启了手机,,发现排行榜变了。。
Telegram
    353
Telegram  
   Jan 3, 2018 via iPhone
@XiaolinLeo #345 看来服务端已经开始验证按压记录这些信息了,楼主一开始是准备伪造这些数据的,因为微信跳一跳默认发出去的信息解密开来就有这些记录,但是楼主发现提交空的,也能通过,也就是说服务端一开始根本不验证是不是空的。
yy1300326388
    354
yy1300326388  
   Jan 3, 2018
@fadaixiaohai 现在不行啦,每次最多刷 5 分,中午最高刷到 10 万啦
wonkeyz
    355
wonkeyz  
   Jan 3, 2018 via iPhone
@hyndaniel 嗯我试试 谢谢~
yy1300326388
    356
yy1300326388  
   Jan 3, 2018
@nerozhu 需要重启微信
Ruzdz
    357
Ruzdz  
   Jan 3, 2018
问个比较蠢的问题 - - 怎么用 python 解密 unwxapkg.py - - 不会 py
BugFree
    358
BugFree  
   Jan 3, 2018
errcode: -5。。
Telegram
    359
Telegram  
   Jan 3, 2018
@yy1300326388 嗯,现在最高是 100000,刚刚给同事提交 666666,然后只有 100000。
DuckyDog
    360
DuckyDog  
   Jan 3, 2018
@Telegram 我这边一直 errorcode 108
Ruzdz
    361
Ruzdz  
   Jan 3, 2018
@DuckyDog 求问 python 怎么解压 unwxapkg.wxapkg 这个文件的???
Nicksxs
    362
Nicksxs  
   Jan 3, 2018
现在还能获得 session_id 吗
WenJimmy
    363
WenJimmy  
   Jan 3, 2018
@Nicksxs #362 抓包可以获取到
DuckyDog
    364
DuckyDog  
   Jan 3, 2018
@Ruzdz 我没用 python 用另外一个解压的..
Ruzdz
    365
Ruzdz  
   Jan 3, 2018
@DuckyDog 求解压之后的包...
Nicksxs
    366
Nicksxs  
   Jan 3, 2018
@WenJimmy 我这边抓包好像只有这个 https://mp.weixin.qq.com 的请求
没有这个 https://mp.weixin.qq.com/wxagame/wxagame_init
justfun
    367
justfun  
   Jan 3, 2018
@Clarencep 出现这个错误
settlement result: { base_resp: { errcode: 108 } }
Well done! Happy new year! 🎉

@DuckyDog
我也是
justfun
    370
justfun  
   Jan 3, 2018
JoyChou
    371
JoyChou  
   Jan 3, 2018
appid 如何找
justfun
    372
justfun  
   Jan 3, 2018   ❤️ 1
手一抖 有点多了= =![有点多了]( https://s1.ax1x.com/2018/01/03/pCUq6f.jpg)
fuergaosi
    373
fuergaosi  
   Jan 3, 2018
@justfun 这个怎么用
lampeduza
    374
lampeduza  
   Jan 3, 2018
@justfun 你这是 11k 分吧。。。。
imaple
    375
imaple  
   Jan 3, 2018
@Nicksxs 你手机没安装证书吧.
hjuj91
    376
hjuj91  
   Jan 3, 2018
失效个 p,照刷不误
cooboy
    377
cooboy  
   Jan 3, 2018
怎么 gist 都打不开啊
justfun
    378
justfun  
   Jan 3, 2018 via iPhone
@cooboy 被墙了
walls
    379
walls  
   Jan 3, 2018
@justfun 怎么操作啊?谢谢!
justfun
    380
justfun  
   Jan 3, 2018
@walls
node.js 运行我楼上发的那个 js,sessionid 改成自己的
@fuergaosi
walls
    381
walls  
   Jan 3, 2018
@justfun
1 jsL 里的 sessionid 在 var sessionid=data['base_req']['session_id'];这一行里改吗?还是哪里。
2 弱弱问下,nodejs 直接安装上运行就行吗?不太懂这块
3 nodejs 运行是开始菜单里绿色那个 node.js ,还是黑色命令行 Node.js command prompt 那个
4 还是 cmd 里直接运行,C 盘根目录下,运行提示下面的

C:\>node wxdump.js.
module.js:538
throw err;
^

Error: Cannot find module 'crypto-js'
at Function.Module._resolveFilename (module.js:536:15)
at Function.Module._load (module.js:466:25)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (C:\wxdump.js.JS:1:78)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
always2017
    382
always2017  
   Jan 3, 2018
昨天帮别人刷的 2018 失效了,我的 10 万还在。
TanninS
    383
TanninS  
   Jan 3, 2018
腾讯给 post 加了验证吧,同样的方法已经刷不上了
Wysten
    384
Wysten  
   Jan 4, 2018 via iPhone
刚刚在头条看到有人那这个盈利… 有人做了个网页,输入 session_id 就可以请求…并配备了抓包教程…估计楼主看到会哭晕在厕所…
pzs
    385
pzs  
   Jan 4, 2018
亲测可用。虽然折腾了好几遍。
一直尝试,该分数,改版本,改 times。
结果在分数为 12018 的时候刷新微信发现成功了。

版本改为 9。
把 var times = response.my_user_info.times + 1 改成 var times = response.ts + 1
13203173640
    386
13203173640  
   Jan 4, 2018
@justfun 请教下大佬,我拿到 session_id 后下一步应该怎么办?
是应该执行你楼上发的 js 脚本,替换一下对应的 session_id 值然后执行吗?但是我记得 js 文件是不能单独执行的吧,得有一个 html 页面引用?
或者是用 charles 工具拦截请求改下数据在发,但这个我试了好多遍了好像都没用。
JohnTsemin
    387
JohnTsemin  
   Jan 4, 2018 via Android
已经翻车,朋友已经看不到我在排行榜了
YrX12138
    388
YrX12138  
   Jan 4, 2018 via iPhone
如果我说网站已经实现了,你们会不会哭死?
上限是十万。
sunnycode
    389
sunnycode  
   Jan 4, 2018 via iPhone
微信小程序 wxapkg 压缩包想获得前端代码的可以改安卓端微信,修改 wxapkg 里面的域名以及 appid,打开调试工具看到 wxml 那就是每个页面的前端代码获取到后可以利用 unpack 解包 wxapkg 读取 js is 图片,自己进行处理一下你抠下来的前端代码就可以使用啦
techart
    390
techart  
   Jan 4, 2018
@sunnycode 请问如何获取 appid ?
sunnycode
    391
sunnycode  
   Jan 4, 2018 via iPhone
@techart 不需要获取 appid 利用安卓模拟器 看微信的缓存目录就有 wxapkg
sunnycode
    392
sunnycode  
   Jan 4, 2018 via iPhone
欢迎大家一起讨论如何获取我小程序的源码,既然可以通过缓存文件在手机上运行那么就有办法获得 wxml,例如体验版小程序打开调试


点击链接加入群 [微信小程序开发平台] : https://jq.qq.com/?_wv=1027&k=52TKaVP
Jokerrrrrr
    393
Jokerrrrrr  
   Jan 4, 2018
已经翻车,被列入黑名单了
binarysearchtree
    394
binarysearchtree  
   Jan 4, 2018
还搞不定的可加 QQ 群
590593504
10w 分 会翻车,9999 分不会被封
newmlp
    395
newmlp  
   Jan 4, 2018
我的 2k 多分已经被清零了╮(╯﹏╰)╭
Jokerrrrrr
    396
Jokerrrrrr  
   Jan 4, 2018
@binarysearchtree 兄弟我就是 9999
wut
    397
wut  
   Jan 4, 2018
99999 已翻车 朋友已经看不到我在排行榜了
A555
    398
A555  
   Jan 4, 2018
好友排行榜已经看不到了
binarysearchtree
    399
binarysearchtree  
   Jan 4, 2018
我的 9999 正常,你们用的哪个脚本?
Tink
    400
Tink  
PRO
   Jan 4, 2018
不用试了,都会清零
1  2  3  4  5  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4488 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 267ms · UTC 10:13 · PVG 18:13 · LAX 03:13 · JFK 06:13
♥ Do have faith in what you're doing.