type
status
date
slug
summary
tags
category
icon
password
这里写文章的前言:
一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。
可以说说你的故事:阻碍、努力、结果成果,意外与转折。
目标网站
网站:某词霸网站
网址:aHR0cHM6Ly93d3cuaWNpYmEuY29tL3RyYW5zbGF0ZQ==
定位分析
分析网页的接口,通过抓包请求的接口分析得到一个结论。我们需要解决sign参数,也就是如下的参数。

然后再请求看到response结果,他也是加密的,我们需要解密才能看到真正的返回内容。

我们今天使用截包的方式来找对应的加密位置,我们先在浏览器中打上链接的断点,让他可以断点在请求之前的位置。

然后我们在触发段点断点,所以我们需要在堆栈找到对应的位置,就在浏览器中的这个地方。

通过一个堆栈一个堆栈慢慢的查找,直到在这个位置,我们可以看到对应的数据被解密和请求之前的加密在进行拼接得到一个完整的链接。

我们这里看到加密之前所需要的参数,然后再加密获取前16位数。

得到第一次结果还需要再进行第二次的运算。

通过这个函数进行第二次的运行,我们在调试跟上去看一下是什么。

这里通过key然后用算法进行运行,得到这个sign加密,这样就可以正常的获取这个结果。
接下来我们就需要对这个返回结果,然后再解密得到正确的结果。我们才能分析请求是否正常。
我们通过之前的分析,看到其实也相对简单。还是在这个sign的下面位置一点。

我们具体就要分析这个函数如何实现的,我们打个断电然后跳转一下。

其实这里跟sign第二次的运算比较相识,我们可以看出代码也相对比较相识。这里就是使用算法进行解密得到最后的内容,然后再转换成JSON格式。

我们在控制台进行JSON转换查看是否正常。

我们可以看到结果也是正常的。
算法还原实现

运行得到的结果如下:

代码实现的完整代码。
🤗 总结归纳
本文介绍了对某词霸网站的sign参数逆向分析过程。通过浏览器断点调试,我们定位到了sign参数的加密位置,发现它需要经过两次运算才能得到最终的sign值。同时,响应数据也是加密的,需要通过类似的解密算法才能获取真实内容。整个过程包括:
- 通过断点定位到加密位置
- 分析sign参数的两次加密运算过程
- 找到响应数据的解密方法
- 验证解密后的JSON数据正确性
- 作者:猿榜编程
- 链接:https://www.yuanbang.lol//article/15c202ba-3e23-8022-9a8a-fcdbd2c8689b
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。