某翻译平台cookie和签名参数逆向破解
前文
第一次写这么长的文章,语言组织可能有些不流畅,如果有什么不合理的地方请指出。
此分享只用于学习用途,不作商业用途,若有冒犯,请联系处理
逆向参数的分析流程
- 分析请求,找到参数
- 定位参数(搜索参数名,XHR断点,HOOk)
- 分析参数
- 补全构造代码
案例场景
我们用无痕模式打开谷歌浏览器,输入打开目标网址,然后打开开发者模式,输入需要翻译的内容。

我们只看异步请求的包,通过上图我们可以在不断输入内容时,浏览器会根据输入内容实时响应翻译结果,而图片中红线框的这个请求就是我们要学习的目标接口。
请求参数研究
我们随便点击一个请求看这个请求的参数相关信息

第一眼看这些参数我们可以明确一点就是smartresult,from,to,client,doctype,version,keyfrom这几个参数时固定的;而i是我们输入的内容,这个也是可以构造的;action有两种值,一种是网站实时翻译类型FY_BY_REALTlME,另一种是点击按钮触发的翻译类型FY_BY_CLICKBUTTION;剩下salt,sign,lts,bv这四个参数是不固定的,根据salt,lts的数据格式可以判断这两个值跟时间戳有关,理论上只要找到这四个参数的生成规则我们就可以构造所有必要参数了。
我们再点击一下翻译按钮,看看还是用人生苦短,我用python翻译的请求参数有啥不同,对比发现salt,sign,lts这三个参数发生了变化,可以判定这三个参数是会随着请求重新构造生成的;而bv这个参数不变判定要么是网站在某个地方写死了值,要么是两次请求中传入的某些东西是不变的所以这个值也不变,回顾我们进行的两次请求,发现真正不变的内容就是我们输入的翻译内容,我们可以输入其它内容看看bv这个参数会不会变化。

通过上图可以确定bv跟输入内容无关,到这里我们可以确定salt,sign,lts,bv这四个参数需要我们去逆向找到生成逻辑。
cookie研究
要想知道一个请求需不要cookie,只要请求时请求头不传入cookie,看看能不能正常响应拿到数据即可。
我们可以把这个网址的cookie信息全部清空,再次请求一次看看它的响应内容

进入全部请求内容,可以看到在没有cookie时第一个请求的就是我们的目标接口,看这个接口的请求头信息可以看到是有cookie信息的,而这个接口请求前面没有其它的请求,所以可以确定这个cookie信息不是由后端接口请求返回的,而是在接口请求前构造生成设置的,这样就确定了我们需要逆向找到cookie生成逻辑。
这样我们就明确了这个案例反爬的方式和反反爬的方向了,下面开始分享我的破解思路。
逆向破解
请求参数逆向破解思路流程
定位参数
XHR提取断点
在案例场景中我们已经分析并找到需要逆向的参数了,接下来我们需要定位到参数的逆向位置。由于目标网址translate_o?smartresult=dict&smartresult=rule是xhr异步请求,我们可以直接设置XHR提取断点

按上图设置好xhr断点后点击翻译按钮,就会进入debugger模式

上图这个代码格式不方便阅读,我们可以点击图片左下方{}进行代码格式化,格式化后会定位到发起xhr请求的位置,打上断点并执行下一步

可惜的是执行下一步后请求的执行结束了,可以确定无法通过XHR断点模式确定参数生成位置。
请求调用堆栈
通过查看请求调用堆栈我们可以知道这个请求的调用过程,其中send调用位置就是我们通过XHR断

最低0.47元/天 解锁文章
9241





