知乎x_zse_96,x_zst_81参数分析

目标网站:

aHR0cHM6Ly93d3cuemhpaHUuY29tL3NlYXJjaD90eXBlPWNvbnRlbnQmcT1qYXZh

数据接口:

aHR0cHM6Ly93d3cuemhpaHUuY29tL2FwaS92NC9zZWFyY2hfdjM=

分析接口下图这3个参数就是加密的地方知乎x_zse_96,x_zst_81参数分析_第1张图片
快捷键Ctrl + shift + F 搜索x_zse_96参数
知乎x_zse_96,x_zst_81参数分析_第2张图片
进入js文件,在文件中搜索x_zse_96有两个结果。分别打断点进行调试可以看到x_zse_96参数在9184行生成
知乎x_zse_96,x_zst_81参数分析_第3张图片
从9184行向上查找发现x_zse_96的值是signature,生成方法是

(0,P(r).encrypt)(f()(s))

先分析f()(s)
进入f()方法,在16526行下断点进行调试
知乎x_zse_96,x_zst_81参数分析_第4张图片
可以发现传入的参数t实际上是

"x-zse-93参数+接口的链接+cookie中的d_c0参数+x-zst-81参数"

而e和n传入的都是undefined所以return的三元表达式最终执行的方法是h(A(t)),根据看大佬们的文章知道h(A(t))方法实际上是对t参数进行MD5加密
在这里插入图片描述
在这里插入图片描述
到此f()(s)的结果已经出来了,然后分析P®.encrypt方法,选中进入该方法,在返回下断点进行调试可以看到传入的参数 t 为 f()(s) 的值,返回的结果__g._encrypt(encodeURIComponent(t))就是需要的x-zse-96参数的值
知乎x_zse_96,x_zst_81参数分析_第5张图片
接下来分析__g._encrypt函数,选中跳转到函数所在位置,抠出这一段函数体
知乎x_zse_96,x_zst_81参数分析_第6张图片
接下来进行补环境的操作,本文采用挂代理的方式来补环境,具体怎么操作等我想好怎么表达可能会另写
最终得到结果
知乎x_zse_96,x_zst_81参数分析_第7张图片
x_zst_81参数的值置空不影响最终的结果

你可能感兴趣的:(python,javascript)