某猫投诉网站加密参数全流程分析

154 阅读2分钟

本文仅供学习参考,切勿违反相关法律

抓包请求

网站: aHR0cHM6Ly90b3VzdS5zaW5hLmNvbS5jbi8= 通过抓包分析得到以下参数:

image.png 初步判断 ts 是时间戳,type 和 page_size是定值, page 是页数 那接下来需要分析的有 ts 和signature

参数分析

经过观察这是一个异步请求

image.png ok, 直接跟栈打断点 再刷新下运行到了断点位置

image.png 发现加密的参数已经有了,那只能往上跟栈,查找参数生成位置 跟栈时候可以先观察参数及返回值,如果参数就已经包含加密参数, 那么直接可以直接查看上一层,经过分析找到了以下位置:

image.png 参数 d 毫无疑问是时间戳:

image.png 参数 rs 是一段随机字符,用 js 里的自执行函数生成,没有别的依赖,直接可以执行

image.png

signature 看起来复杂一些, 是一个有很多参数的为止函数生成, 参数先被放在一个数组里, 然后排序并 join 变成一个字符串:

image.png 我们可以在控制台先把参数的值打印出来

image.png

h 是刚才的随机数函数生成,u,l,p 是定值,e 是参数,经过翻页验证得到 e 是定值 排序并 join 得到以下结果:

image.png

在这里教大家一个小方法,如果函数不知道在哪定义,可以在控制台输入函数名字, 注意不要调用,点击输出就能定位到函数定义位置

image.png

进入查看

image.png 然后打断点重新调试

image.png

image.png 正是我们想要的值 然后分析加密参数

image.png

然后跟进_doFinalize函数得到以下

image.png

其实到这里就很明了了, 是一个 sha256,可以直接用 node 调用 js或者直接 Python 重写,然后带上计算出来的参数就能成功请求了

好了今天的分析就到这里, 有啥问题评论区见,关注我以后会分享更多爬虫方面的知识

image.png