打开目标网站 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变成字节的处理代码,直到找到代码为止。
难度算中上,比较适合新手提升技能!