0. 声明
- 本文仅用于技术交流
1. 网页检查
点击不同的天数会重新加载3条数据
分析接口,可以看到返回到的内容里有个data
的数据进行了加密
那么情况就很清晰了,需要对这个data
进行解密,由于data
是一个非常广泛的关键字,直接去搜索结果范围太大了,需要更换另一个思路,既然返回的是加密后的数据,那么前端就要对数据解密,就会用到decrypt方法
,那我们去搜索decrypt(
看下是什么情况。
可以看到总共有16处匹配,不确定是哪里是真实解密方法,挨个打上断点,断到哪里就是真实机密方法
确认最后断在了r = k.a.decrypt(e.data, t.pc.data).split(","),
这里
控制台输出一下看下结果
看到能出正确的结果,那么这里能确定是机密方法了
分析一下代码:
k.a.decrypt
是一个解密方法,其中调用了两个参数,一个是e.data
,一个是t.pc.data
,最后用逗号进行分割
去控制台看下这两个参数都是什么
对断点进行放行,然后去搜索一下
其中t.pc.data
是已经获取到的加密的值,e.data
是另一个接口里返回的数据
观察一下这个接口url:https://xxx.com/Interface/ptbk?uniqid=237aacb8de29ed85b5552b1ad7e646f1
用到了一个uniqid,搜索发现这个uniqid是和加密数据一起返回的。
再看下解密方法k.a.decrypt
通过断点进入到方法体内部
可以看到就是一个对字符串处理的方法,直接copy下来即可
取下两个参数的值和解密方法,在本地运行成功
2. 总结
页面加载会产生3个接口,其中接口1的结果返回了uniqid
和加密值data
,接口2的url拼接上uniqid
,会返回另外一个字符串e.data
,调用解密方法传入e.data
和data
即可得到正确的结果。