打开目标网站 spolicy,打开开发者工具。

1. 需要处理的是无限debugger的问题。这个用hook就好。

需要注意的是,要页面请求完之后,再打开开发者工具,然后在hook,不然会有错误,无法请求到任何内容。

打开网易新闻 查看更多图片

2. 点击标签切换,加载数据,点击数据接口的启动器。

(请求参数是bytes,也是需要我们处理的内容)

打开网易新闻 查看更多图片

3. 设置断点,单步向上或者向下,找到请求参数 data变成字节的代码

打开网易新闻 查看更多图片

4. 点击查看Vm代码,查看它的处理方式

打开网易新闻 查看更多图片

5. copy 出js代码,尝试寻找Writer是什么。

这里可以用webpack扣js的方式,就是找到分发器,挨个补环境什么的。

我们在向上寻找分发器的时候,发现了一个核心的关键词:protobuf

打开网易新闻 查看更多图片

so, node 安装一下protobufjs,改写一下代码,运行一下。

打开网易新闻 查看更多图片

6.再次返回开发者工具,查看它最后的处理方式

打开网易新闻 查看更多图片

它在之后执行了finish方法和slice方法。我们也改一下,看一下结果。

打开网易新闻 查看更多图片

输出看上去没啥问题。

7. python调用一下js文件。

这里有很多就直接停住了,要么无法调用,要么启动node server来暴露api来做。

其实很容易。

打开网易新闻 查看更多图片

打印出js返回的结果发现是个字典,字节变成了数组。那就用python中的数组转字节的方法就好了,bytes(array),就可以请求成功了。

8. 结果展示

打开网易新闻 查看更多图片

总结:这个站点的js是混淆的,而且有很多是异步的,不太好跟踪。跟踪堆栈的时候,目标要明确,就是要找到请求body变成字节的处理代码,直到找到代码为止。

难度算中上,比较适合新手提升技能!

打开网易新闻 查看更多图片