注意:文章内容仅用于学习和技术交流,如有侵权请联系我删除。
学者应洁身自好,切勿做出违法的事情,旨在提供逆向思路。
aHR0cHM6Ly93d3cueW91enkuY24vdHp5L3NlYXJjaC9jb2xsZWdlcy9jb2xsZWdlTGlzdA==
问题分析:
请我们请求上方url时,会出现国内大学的列表,通过不断往下滑动,会发现该数据为ajax动态加载,通过netword工具很轻易就能找到api接口:



Response数据返回:

通过分析api接口可知,在请求Headers中包含一个动态加密参数“u-sign”,每次页面刷新,值都在随时变化,只要破解此参数,除了页码为动态设置外,其他都可设为固定值。
逆向开始:
我们搜索关键词“u-sign”,可以得到一条数据:

点开后,很显然地看到“u-sign” 的值为函数 i 的返回值:

我们设置断点,进行动态调试后,可以看到函数 i 其实调用了匿名函数:

跟进去:

找到了加密函数所在,加密逻辑一目了然~~~~
参数e 和 t 均为已知数据:
e : 为api请求接口的后半部分;
t : 看着很熟悉吧?是的,就是api请求post过去的参数;
加密函数的处理逻辑并不复杂,结果得到变量a,最后使用n函数进行处理:

我们跟进去看下n函数,发现调用的仍为匿名函数:
跟进去:

根据代码中所涉及的函数与变量,只要往上面稍微翻一翻就能找到:


。。。。。。
剩余的截图就不贴了,完整代码会放在文末处。
通过以上的分析, 我们把相应的函数与变量复制粘贴到本地js文件里,补全环境与代码,稍作更改,就可以正常运行了。。。
比如:
当我们直接刷新页面时,找到api接口,观察数据:

请求参数:

结果返回:

我们看下Headers中的u-sign的值:

这时,我们构造本地js文件,补全参数后:

完全正确。
当然,当需要搜索时,你只需要把请求参数中的“keyword”设置为你的搜索关键字,就ok了:

u-sign:

本地js模拟:

本文介绍了如何分析和解密一个网页API接口中的动态加密参数u-sign,通过动态调试JavaScript代码,揭示了加密逻辑,并提供了模拟请求的本地JS实现。内容包括找到加密函数、理解加密过程以及构造本地请求来获取和搜索数据。
2208

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



