爬虫----js逆向某宝h5的sign参数

抓包

  • 开发者工具中抓到包,发现有我们需要的商品数据。

爬虫----js逆向某宝h5的sign参数_第1张图片

分析构成的参数

  • 对比两次请求发现,变化的参数只有两个:

t参数: 一眼就看出来是一个13位时间戳
sign参数:貌似是一些参数经过哈希加密算法之后生成的32位小写加密参数。

具体sign参数还需要去js分析

在这里插入图片描述

  • 直接查看请求使用到的堆栈,请求使用的堆栈从下至上

爬虫----js逆向某宝h5的sign参数_第2张图片

  • 进入最近一次调用的js文件里面,试试直接搜索一下sign参数,发现只有这条是在给sign赋值

爬虫----js逆向某宝h5的sign参数_第3张图片
爬虫----js逆向某宝h5的sign参数_第4张图片

  • 打上断点刷新重走逻辑,看看入参,来验证之前的猜想,j这个参数就是请求时的sign参数。

爬虫----js逆向某宝h5的sign参数_第5张图片
爬虫----js逆向某宝h5的sign参数_第6张图片

  • 打印一下入参的明文
  1. 对比两次请求的入参

     g参数和d.token没有变化,g参数对比之后发现为参数中的appkey,d.token为cookie中的_m_h5_tk以_分割后的字符串。
     
     i参数为时间戳和参数中的t参数是一样的时间戳。
     
     c.data根据商品不同,id会变化,为商品的id,也是参数中的data
    

爬虫----js逆向某宝h5的sign参数_第7张图片
爬虫----js逆向某宝h5的sign参数_第8张图片

验证猜想

  • 现在搞清楚了入参,找个md5的加密工具,验证一下之前的猜想,是否是md5哈希加密?

    上一篇做的md5加密,跟这个很像,可以直接去百度搜索一下md5的在线加密,验证一下

  1. 发现生成的不一样

爬虫----js逆向某宝h5的sign参数_第9张图片

在这里插入图片描述

  1. 查看参数是否输入正确,鼠标放在断点暂停的地方发现,exParams中的反斜杠为一个,而控制台打印出来的参数反斜杠是两个,应该是被转义了。
    在这里插入图片描述

  2. 参数修改为一个反斜杠,再次加密,发现和js生成的一样,证明之前猜想的md5加密是正确的。

爬虫----js逆向某宝h5的sign参数_第10张图片

  1. 如果这一步还是不能成功,那就要进入h这个函数,去看具体是怎么生成的sign了,如果不想分析,可以直接用python的一些调用js的模块直接去调用网页中的js。(逆向就是要多尝试)

爬虫----js逆向某宝h5的sign参数_第11张图片

code

加密参数分析完毕,使用python实现md5加密,还原sign

第一次请求令牌为空时就是cookies中没有_m_h5_tk , response的cookies中就会有一个_m_h5_tk

在这里插入图片描述

在这里插入图片描述

仅供学习交流使用,非商业用途,如有侵权,请联系我删除!!!

你可能感兴趣的:(爬虫,爬虫,javascript,前端)