工具
WechatDevTools
分析
请求分析
分析签到请求,目前已知这些参数需要分析
- timestamp
- token
- shumeiID
- black_box
- sign
其中,timestamp为时间戳,black_box为固定值,token可能为用户凭证,又由简单分析发现black_box为固定值,于是,仅需分析shumeiID和sign
shumeiID
看起来像base64编码后的字符串加上一串数字
WHJMrwNw1k/HYMQB06B+lh7CVxPJAqfx7j/lF34M52A3NarAdAtgg7LbowgzBu4Q121fbhMpfkcehqfS1qy6rINyVazI2G2SadCW1tldyDzmauSxIJm5Txg==1487582755342
查看多个请求发现shumeiID都是一样的
sign
关键代码将字符串拼接后加密并进行小写
return (0,t.default)("".concat(u.APPSECRET).concat(n).concat(u.APPSECRET)).toLowerCase()
u.APPSECRET的值为aff7f768de81bb5f4e7c9bfba518c
简单分析实际上是进行了md5加密,其中拼接的字符串为
aff7f768de81bb5f4e7c9bfba518capp_keymp1.0black_box+black_box的值(这里太长了)+fromScanCodeoswxshumeiIDWHJMrwNw1k/HYMQB06B+lh7CVxPJAqfx7j/lF34M52A3NarAdAtgg7LbowgzBu4Q121fbhMpfkcehqfS1qy6rINyVazI2G2SadCW1tldyDzmauSxIJm5Txg==1487582755342timestamp1724964836950tokendb27191xxxxxxxxxx947a179ddcd6ddaaff7f768de81bb5f4e7c9bfba518c
那么在构造请求参数时,只需将token和timestamp的值进行替换,然后md5处理,即可得到sign值。
注意:在构造需加密的字符串时,排序方式为参数首字母按a-z顺序拼接,而在构造post请求的payload时,顺序则无所谓。
请求构造
请求构造中payload用到的参数和sign加密用到的参数一致,需特别注意。