文章目录
- 前言
- 一、流程分析
- 二、导出代码
- 三、补环境
- 总结
前言
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!
一、流程分析
搜索响应中内容,发现在接口 search_v3 中,查看请求头,需要逆向的参数 x-zse-96
搜索 x-zse-96 ,找到生成位置,然后追栈
上面连接成字符串后,然后通过md5方法获得了一个32位的值,然后通过 encrypt 方法加密成了最后的结果;
上面的参数 dc0 是从请求 udid这个链接 中获取的,步骤就是
- 请求主页,获取cookie
- 请求/udid在cookie中获取了这个dc0的值
- 注意在请求udid的过程中也需要传入 x-zse-96,但是生成这次 x-zse-96 的过程中dco是个空值
二、导出代码
找到了加密位置后,发现这是webpack中的一段代码,把这段代码拿下来就好,然后发现参数都可以去掉,再补一个里面的方法就可以了
三、补环境
将代码拿到nodejs中补环境,发现返回的总是一个时间戳,意识到有点问题,跟了下流程,发现校验了运行时间差,并且在运行过程中会一直校验
跟浏览器的逻辑,这里应该是一直 -8, 所以改成
this.T -= 8
继续运行代码,返现还是不报错,就返回了一个时间戳,然后找到问题,是catch捕获了异常,所以没有报错,去掉这个try语句就好了,然后报什么错,补什么环境就可以
总结
补环境可以快速的得出结果,注意的时候校验了时间差,和异常捕获,然后按照请求流程发送请求就可以得到正确的结果了。