V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
bravecoder
V2EX  ›  分享创造

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

  bravecoder · 2017-12-31 21:29:48 +08:00 · 90922 次点击
这是一个创建于 2518 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

第 1 条附言  ·  2017-12-31 22:02:32 +08:00
目前比较麻烦的是

- [ ] 需要先抓包拿到 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 文件:
第 2 条附言  ·  2018-01-01 01:03:12 +08:00

更正写错的地方

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

  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 调整后再看,逻辑其实蛮清晰的

第 3 条附言  ·  2018-01-01 10:24:34 +08:00

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

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

大家悠着点玩 😜

第 4 条附言  ·  2018-01-01 15:05:53 +08:00

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

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

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

第 5 条附言  ·  2018-01-02 18:47:40 +08:00

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

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

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

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

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

@DuckyDog
我也是
yangceng
    369
yangceng  
   2018-01-03 17:40:37 +08:00
justfun
    370
justfun  
   2018-01-03 17:46:40 +08:00
JoyChou
    371
JoyChou  
   2018-01-03 17:50:57 +08:00
appid 如何找
justfun
    372
justfun  
   2018-01-03 17:53:02 +08:00   ❤️ 1
手一抖 有点多了= =![有点多了]( https://s1.ax1x.com/2018/01/03/pCUq6f.jpg)
fuergaosi
    373
fuergaosi  
   2018-01-03 18:03:08 +08:00
@justfun 这个怎么用
lampeduza
    374
lampeduza  
   2018-01-03 19:01:38 +08:00
@justfun 你这是 11k 分吧。。。。
imaple
    375
imaple  
   2018-01-03 19:42:09 +08:00
@Nicksxs 你手机没安装证书吧.
hjuj91
    376
hjuj91  
   2018-01-03 19:56:04 +08:00
失效个 p,照刷不误
cooboy
    377
cooboy  
   2018-01-03 20:50:18 +08:00
怎么 gist 都打不开啊
justfun
    378
justfun  
   2018-01-03 21:01:01 +08:00 via iPhone
@cooboy 被墙了
walls
    379
walls  
   2018-01-03 21:45:20 +08:00
@justfun 怎么操作啊?谢谢!
justfun
    380
justfun  
   2018-01-03 21:58:18 +08:00
@walls
node.js 运行我楼上发的那个 js,sessionid 改成自己的
@fuergaosi
walls
    381
walls  
   2018-01-03 22:21:06 +08:00
@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  
   2018-01-03 22:43:15 +08:00
昨天帮别人刷的 2018 失效了,我的 10 万还在。
TanninS
    383
TanninS  
   2018-01-03 22:52:33 +08:00
腾讯给 post 加了验证吧,同样的方法已经刷不上了
Wysten
    384
Wysten  
   2018-01-04 00:02:21 +08:00 via iPhone
刚刚在头条看到有人那这个盈利… 有人做了个网页,输入 session_id 就可以请求…并配备了抓包教程…估计楼主看到会哭晕在厕所…
pzs
    385
pzs  
   2018-01-04 00:11:23 +08:00
亲测可用。虽然折腾了好几遍。
一直尝试,该分数,改版本,改 times。
结果在分数为 12018 的时候刷新微信发现成功了。

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


点击链接加入群 [微信小程序开发平台] : https://jq.qq.com/?_wv=1027&k=52TKaVP
Jokerrrrrr
    393
Jokerrrrrr  
   2018-01-04 10:49:05 +08:00
已经翻车,被列入黑名单了
binarysearchtree
    394
binarysearchtree  
   2018-01-04 10:51:33 +08:00
还搞不定的可加 QQ 群
590593504
10w 分 会翻车,9999 分不会被封
newmlp
    395
newmlp  
   2018-01-04 10:54:43 +08:00
我的 2k 多分已经被清零了╮(╯﹏╰)╭
Jokerrrrrr
    396
Jokerrrrrr  
   2018-01-04 11:08:13 +08:00
@binarysearchtree 兄弟我就是 9999
wut
    397
wut  
   2018-01-04 11:12:36 +08:00
99999 已翻车 朋友已经看不到我在排行榜了
A555
    398
A555  
   2018-01-04 11:25:01 +08:00
好友排行榜已经看不到了
binarysearchtree
    399
binarysearchtree  
   2018-01-04 12:13:38 +08:00
我的 9999 正常,你们用的哪个脚本?
Tink
    400
Tink  
   2018-01-04 12:31:57 +08:00
不用试了,都会清零
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2689 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 05:36 · PVG 13:36 · LAX 21:36 · JFK 00:36
Developed with CodeLauncher
♥ Do have faith in what you're doing.