声明:文章内容仅供学习参考,严禁用于商业用途,否则由此产生一切后果与作者无关,如有侵权请联系作者进行删除。
2021.11.30
前言: 接上一篇《最新版tiktok网页版X-bougs和_signature》发现,可恶的用户视频接口,还有一个参数在headers里,x-tt-params。
1.1 目标接口:
1.2 调试分析:
这里通过调试分析发现,用户的前6条数据会绑定在主页的源代码中,然后从第7条开始的数据均由xhr接口发送请求,其中有一个下发的时间戳为主要参数,跟用户的secUid绑定生成x-tt-params。
2.1 x-tt-params 逻辑分析
这里我们就往回追一下或者直接搜索关键词,就可以定位到改关键词位置。打上断点翻个页,断下来看看逻辑;
其中b是个对象,跟我们之前文章中自己构建的XMLHttpRequest对象中的params相似,那可以自己伪造,其次我们就需要扣出这个d.a()方法;追进去看一下
oho,又是一个jsvm,还是一个嵌套在webpack打包中的jsvm,但我们这里是同一个文件,那么我们随它的逻辑扣出来的代码,自然也能正常运行,只要把整个webpack抠出来,补齐检查的环境,并且把这个加密函数暴露给全局,就顺利解决了这一难题。补环境这里,我们上一篇文章已经补好,同一个网站监测的地方自然不出意外是一样的;
2.2 webpack扣代码
相信很多人对webpack的扣法已经是炉火纯青,这里也是扣分发器和塞对象的操作。
在函数d.a所在的对象中下个断点,刷新页面重新加载,可以找到分发器的位置。
然后再需要把对象扣下,放在分发器的最后的数组里,这里为了方便把数据改成了对象,这里可以把全部键值对的对象都扣下,没有影响,然后在初始化时把函数暴露给全局,这样就得到了d.a函数。
3 结果:
完成,要注意构建的params的顺序,params中需绑定下发时间戳与用户secUid。其次该接口在生成加密参数时,应该携带在XMLHttpRequest对象的headers中。收工。
这里会给出一个没有补环境的版本,当然还是为了拒绝白嫖怪。
下载链接可搜索公众号: jqiu爬虫分析日记,如有问题可私聊或留言;