记录一次微信公众号拉票/点赞破解记录:

- 看到页面第一反应是使用抓包工具找到点赞请求,看看是否有验证。我是使用charles,很容易找到了请求:

- 尝试使用postman直接请求,发现提示需要登录:

-
从抓包那个截图可以看出,点赞请求需要传一个token。尝试修改token、使用常用方式解码token,无果。现在问题是,token从哪来的?
-
开始尝试从前端代码里找token源头,通过抓包,找到了js的地址,发现这里是经过压缩的,这里需要注意最后一行,如果map文件没删,也许可以通过map文件反编译出js源码?

- 尝试反编译map文件,这里使用reverse-sourcemap,前端使用的vue开发。将各个map文件反编译后,基本得到了整个项目的目录结构和源码:

-
继续寻找token来源,token是通过
user/wx_login
接口获取


-
openid
和unionid
是什么,这里不多说明了,可以自行百度。现在尝试调用user/wx_login
接口,看看接口有没有验证openid
和unionid
是否真实:

-
到这里已经成功了,发现果然没有校验=。=!
-
刷赞:
1、先拿不同的openid
和unionid
请求user/wx_login
接口获取token
2、用token请求index/praise?new_id=18513
接口点赞
Over,总结一下:
1、发布后把map文件删掉
2、后端需要校验unionId和openid真实性,至少要保证匹配
ps:最后并没有刷赞,毕竟我是一个诚实的好孩子,也许我只是想尝试一下破解……
网友评论