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即可得到正确的结果。

被折叠的 条评论
为什么被折叠?



