【作者主页】:小鱼神1024
【知识星球】:小鱼神的逆向编程圈
【擅长领域】:JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!若有侵权,请联系作者立即删除!
前言
今天不忙,分析一下某鱼、某宝的 sign 签名算法,记录一下。
前置分析
在请求参数中,发现有 sign
参数,如下:
如果请求不携带 sign
, 会提示:{"api":"mtop.taobao.idlehome.home.webpc.feed","data":{},"ret":["FAIL_SYS_ILLEGAL_ACCESS::非法请求"],"v":"1.0"}
逆向分析
通过全局搜索 sign
关键字,找到 sign
参数的生成位置,如下:
打个断点,重新请求,如下:
发现 sign
参数是 i(d.token + "&" + j + "&" + h + "&" + c.data)
得到的。
其中 token
是来自 cookie
中的 _m_h5_tk
, j
是时间戳,h
是 appKey
为定值,data
是请求参数。
那么 i
函数应该就是 sign
的生成函数了,如下:
将其扣下来。如下:
其中固定时间戳,经过对比,发现 sign
签名和网站上的 sign
签名一致。
相关的js会放到知识星球里,仅供交流学习使用,有需要的自取!
参数验证
写个小例子,验证下生成的参数是否正确,如下:
搞定!!
如果还有什么疑问,请在知识星球里留言。