知乎x-zse-96解密
抓包分析网页
分析Requests Headers里面的参数
这儿可以发现,在Request请求头里面有一个x-zse-96参数是每次AJAX请求后都会验证的一个参数,如果想要拿数据,就必须解密这个参数。
分析js位置:
在source里的static.zhihu.com里可以找到,然后我们搜索一下x-zse-96发现这个加密参数是由
E.set("x-zse-96", "2.0_" + j)这个方法生成的。
而这儿的 j = A.signature;
然后找到signature这个函数 打断点调试:
拿出明文我们来分析一下:
101_3_2.0+
/api/v4/search_v3?t=general&q=Java&correction=1&offset=60&limit=20&filter_fields=&lc_idx=60&show_all_topics=0&search_hash_id=5c4b8f9eb45943033ea9bae5e7e7f62e&vertical_info=1%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0+
"AJCdO9S3PxOPTtS3KuYMHs_PVfe4bvoHuCk=|1623473562
开始解密:
不难发现,这个明文是:3_2.0拼接了一个API搜索接口然后又拼接了一个类似于时间戳的加密字符串
但是根据以往知乎的经验,很有可能是md5加密,我们先试一下:
通过python就已经解密出它的加密了。现在只需要还原js环境即可:
通过多次对比发现:
每次只需要换掉api参数里面的 offset 和 lc_idx即可实现翻页的功能
拿到了这个翻页参数x-zse-96,剩下的就是取解析json数据了,这些最基础的就不再过多累赘。
如想要源码和js解密文件的小伙伴可以微信公众号后台私信: