C-racker/auto-sign

想问下巴奴火锅的签到的code问题

Closed this issue · 5 comments

最近巴奴毛肚火锅签到改得频繁,重新抓包发现多了个code,逆向看到
return {"code": s(s(se.a.stringify(pe({}, de, ie)))).split("").reverse().join("")}
第一时间想到得 se.a.stringify() 是 js内置的JSON.stringify()
试了下发现结果对不上,无奈电脑端又不给用这个小程序, 手机端的小程序也不知道怎么调试, 想问下大佬是通过什么方式得到最后结果是 qx.stringify()的呢? 希望大佬忙里抽闲赐教一下.
最近不知道怎么了 这小程序签到改得好频繁, 现在又不给明文提交member_id了, 要用微信的接口去加密成enc_data了

stringify 一般只有内置的 JSON.stringify 和 qs 库的 qs.stringify 然后通过执行后的值,比对请求的是否一致就可以验证了。目前已经不允许网页签到了,小程序解包参数都搞定了,但就是无法正常签到,甚至还封了我 IP。。其他需要 code 的地方都可以正常请求,只有签到接口返回错误。最近还在研究中。。

stringify 一般只有内置的 JSON.stringify 和 qs 库的 qs.stringify 然后通过执行后的值,比对请求的是否一致就可以验证了。目前已经不允许网页签到了,小程序解包参数都搞定了,但就是无法正常签到,甚至还封了我 IP。。其他需要 code 的地方都可以正常请求,只有签到接口返回错误。最近还在研究中。。

这样子,以前只知道JSON.stringify 不知道还有qs的这个,试了JSON的,发现结果不对,还以为入参不是请求体,但是不能调试,也不知道具体是什么明文做md5,现在是单ip短期内不能超过10次请求,不然就接口风控. 现在的我这边弄好了, 要加密原先的请求体, 不给明文提交, 抓签到的请求, 把enc_data base64解开就直观了, iv就是aes的iv, 后面的就是aes加密原先的明文, key是"bfc5e947cd84c7ced1ee48d28fb3e90f", iv随机生成, "enc_data": base64({"iv": "随机生成的32位hex,并用于后面encrypted_data的aes加密","encrypted_data": aes(key="bfc5e947cd84c7ced1ee48d28fb3e90f",iv="前面的iv","明文"="原先的签到接口请求体")}) code还是不验证, 我之前都是直接用uuid随机生成

stringify 一般只有内置的 JSON.stringify 和 qs 库的 qs.stringify 然后通过执行后的值,比对请求的是否一致就可以验证了。目前已经不允许网页签到了,小程序解包参数都搞定了,但就是无法正常签到,甚至还封了我 IP。。其他需要 code 的地方都可以正常请求,只有签到接口返回错误。最近还在研究中。。

这样子,以前只知道JSON.stringify 不知道还有qs的这个,试了JSON的,发现结果不对,还以为入参不是请求体,但是不能调试,也不知道具体是什么明文做md5,现在是单ip短期内不能超过10次请求,不然就接口风控. 现在的我这边弄好了, 要加密原先的请求体, 不给明文提交, 抓签到的请求, 把enc_data base64解开就直观了, iv就是aes的iv, 后面的就是aes加密原先的明文, key是"bfc5e947cd84c7ced1ee48d28fb3e90f", iv随机生成, "enc_data": base64({"iv": "随机生成的32位hex,并用于后面encrypted_data的aes加密","encrypted_data": aes(key="bfc5e947cd84c7ced1ee48d28fb3e90f",iv="前面的iv","明文"="原先的签到接口请求体")}) code还是不验证, 我之前都是直接用uuid随机生成

我也搞定了,但是你说的不用code,我这边不传code直接就防火墙拦截了,uuid发现随机的也不能用。固定的就没问题,不知道什么情况。

stringify 一般只有内置的 JSON.stringify 和 qs 库的 qs.stringify 然后通过执行后的值,比对请求的是否一致就可以验证了。目前已经不允许网页签到了,小程序解包参数都搞定了,但就是无法正常签到,甚至还封了我 IP。。其他需要 code 的地方都可以正常请求,只有签到接口返回错误。最近还在研究中。。

这样子,以前只知道JSON.stringify 不知道还有qs的这个,试了JSON的,发现结果不对,还以为入参不是请求体,但是不能调试,也不知道具体是什么明文做md5,现在是单ip短期内不能超过10次请求,不然就接口风控. 现在的我这边弄好了, 要加密原先的请求体, 不给明文提交, 抓签到的请求, 把enc_data base64解开就直观了, iv就是aes的iv, 后面的就是aes加密原先的明文, key是"bfc5e947cd84c7ced1ee48d28fb3e90f", iv随机生成, "enc_data": base64({"iv": "随机生成的32位hex,并用于后面encrypted_data的aes加密","encrypted_data": aes(key="bfc5e947cd84c7ced1ee48d28fb3e90f",iv="前面的iv","明文"="原先的签到接口请求体")}) code还是不验证, 我之前都是直接用uuid随机生成

我也搞定了,但是你说的不用code,我这边不传code直接就防火墙拦截了,uuid发现随机的也不能用。固定的就没问题,不知道什么情况。

要近期请求过sign-in/days这个接口的uuid才能用,固定的uuid是抓包后的,你手动抓包的话,小程序会自动请求一次这个接口,所以抓包的这个uuid能用
code不验证不是不传,是传入一个随便的值,headers有这个字段就行了,后端不检查code算得对不对,当然保险起见, 有算法了还是传入对的了

stringify 一般只有内置的 JSON.stringify 和 qs 库的 qs.stringify 然后通过执行后的值,比对请求的是否一致就可以验证了。目前已经不允许网页签到了,小程序解包参数都搞定了,但就是无法正常签到,甚至还封了我 IP。。其他需要 code 的地方都可以正常请求,只有签到接口返回错误。最近还在研究中。。

这样子,以前只知道JSON.stringify 不知道还有qs的这个,试了JSON的,发现结果不对,还以为入参不是请求体,但是不能调试,也不知道具体是什么明文做md5,现在是单ip短期内不能超过10次请求,不然就接口风控. 现在的我这边弄好了, 要加密原先的请求体, 不给明文提交, 抓签到的请求, 把enc_data base64解开就直观了, iv就是aes的iv, 后面的就是aes加密原先的明文, key是"bfc5e947cd84c7ced1ee48d28fb3e90f", iv随机生成, "enc_data": base64({"iv": "随机生成的32位hex,并用于后面encrypted_data的aes加密","encrypted_data": aes(key="bfc5e947cd84c7ced1ee48d28fb3e90f",iv="前面的iv","明文"="原先的签到接口请求体")}) code还是不验证, 我之前都是直接用uuid随机生成

我也搞定了,但是你说的不用code,我这边不传code直接就防火墙拦截了,uuid发现随机的也不能用。固定的就没问题,不知道什么情况。

要近期请求过sign-in/days这个接口的uuid才能用,固定的uuid是抓包后的,你手动抓包的话,小程序会自动请求一次这个接口,所以抓包的这个uuid能用 code不验证不是不传,是传入一个随便的值,headers有这个字段就行了,后端不检查code算得对不对,当然保险起见, 有算法了还是传入对的了

原来如此,受教了