SM商城小程序签到Token分析

本来这个只是很简单的一个签到,关键信息就是那个Token,如下面这行:

{"MallID":1********,"IsFromWX":false,"Header":{"Token":"ukSA4P*************-sVk,16113"}}

在抓包过程中不巧瞄到一眼这个token的来源地址,它是用微信的code去访问登录接口,然后返回了token。凭感觉这个token是每天会变的,所以就去分析这token哪里来的。

各种手段把核心网址弄到了浏览器上去登录,搜索Token:

ca483883765f88e15d01ffa220f96e99.png

因为是小程序的代码,所以直接就进去app.js去找了,果然很明显,也基本肯定是对的了,因为Token被定义在header里,和开头那个一样:

29042c61e8e7dd0db75b34f963cb69f9.png

然后继续定位_token,它来自于getQueryString()和getCookie()两个函数或运算结果。

4b86e636666999563b3bbcbfd588db19.png

9e359ff3ccbf30a8dc254faea7347e7a.png

下断点,并分别进入两个函数看看,发现getQueryString()返回结果是空的。

4c3f21b2aac3f72ce8a09360b91f692b.png

9f6d1ea7694c83c8b2d1e48d9242695a.png

继续进入getCookie()看看:

0c3a30e358fbc95d21e8fe5d3d463802.png

f2396a8336a3e40d63fd9f66a01f8db6.png

代码挺简单的,大概意思就是正则取出cookie中的token,然后返回解码后的字符串,其中442行的decodeURIComponent(arr[2])主要是将%2C解码成,(逗号),所以token中的逗号就是这样来的。

以下是截取的正则表达式和cookies供参考。

reg=/(^| )_token=([^;]*)(;|$)/
uid=98d29********5898a; _mid=*******; _st_baidu1****=var%20censusJs; _fullSite=pro***fig%3*** Hm_lvt_f285d*****e3af2c1cb405=1******816; _token=ukSA4P***********3XDB-sVk%2C16113; _uid=1*****47*7; _userInfo=mo******

实践证明token不是每天一变,那就自行抓包吧,也不费事,把token和MallID找出来填入脚本一跑就完事了。

运行效果就这样:

9f4fd0c6104b8188ee38bed20590f352.png

公众号回复:SM 获取

注:不一定适用于所有城市,自测。

- End -

更多精彩文章

点击下方名片关注【偶尔敲代码】

点亮小花96c508f3bf18d6eb71a3a049db306fe7.gif 让更多人了解

猜你喜欢

转载自blog.csdn.net/a18065597272/article/details/130738152