66回答

1收藏

中间人修改线上js代码

信息分享 信息分享 18473 人阅读 | 66 人回复 | 2020-09-17





爬虫逆向页面js代码时已经定位到了生成代码,但有一些内容看不懂他的逻辑是什么就萌生了修改页面js代码的想法,但他的js每次刷新页面都会重新加载所以不能本地修改
所需工具:
mitmproxy、chrome、python3
mitmproxy:
python的中间人发工具,官方文档,看不懂的看这个:使用 mitmproxy + python 做拦截代理
安装配置mitmproxy:
mac:
brew install mitmproxy
linux/windows:
下载安装 mitmproxy.org
pip安装
  1. pip3 install mitmproxy
复制代码

安装证书:
命令行运行mitmdump -p 8888 电脑配置代理指向mitmdump端口,默认8888,访问mitm.it下载对应客户端的证书
页面js代码:




for循环,每次都对变量o进行了赋值,现在我需要输出每次赋值后的o并输出结束循环的条件

需要改成:
main = function (e, t, r) {
    for (var i = 0, a = Math.pow(2, 32 - t); ;) {
        var o = i.toString(16) + ":" + e;
        i++;
        var s = n_hash(o);
        var temp = parseInt(s.substr(0, 8), 16) // 单独加的        console.log(o, s, a, temp);  // 另加的        if (parseInt(s.substr(0, 8), 16) < a)
            return void r(o)
    }}
以上的代码格式化后的,实际响应是:


根据实际代码格式进行修改
mitmproxy代码:

[ttreply]

=================================================@Project -> File    :mitmproxy_dev -> update_js@IDE                :PyCharm@Author             :相先生@Date               :2020/9/3 17:31@用途                :修改线上js代码@email              :[email protected]=================================================="""import reclass Recorder:

def response(self, flow):

"""        控制返回参数        :param flow:        :return:        """

if flow.request.pretty_url == 'url暂时保密':

body_text = flow.response.get_text()

# 显示匹配结果

print(re.findall('o=i\.toString\(16\)\+":"\+e;i\+\+;var s=n\(o\);', body_text))

body_text = re.sub(

'o=i\.toString\(16\)\+":"\+e;i\+\+;var s=n\(o\);',

'o=i.toString(16)+":"+e;i++;var s=n(o);var temp = parseInt(s.substr(0, 8), 16);console.log(e, o, s, a, temp);',

body_text)

flow.response.set_text(body_text)addons = [

Recorder()]

[/ttreply]


命令行执行 mitmdump -p 8080 -q -s .\update_js.py

配置代理









点保存生效

按两次f12重现加载内容,
  1. ctrl + F5
复制代码
强制重新加载全部内容,重新查看js









我们想修改的内容已经加上去了,看看执行效果









我们想要的内容都打印出来了,剩下的就是将所有相关函数全部提取出来,放在pycharm中执行传入相同参数查看结果是否相同







pycharm执行js代码的方法看我文章
分享到:
回复

使用道具 举报

回答|共 66 个

Masol7

发表于 2020-9-17 15:10:15 | 显示全部楼层

6
回复

使用道具 举报

shimy

发表于 2020-9-17 16:39:30 | 显示全部楼层

1
回复

使用道具 举报

001

发表于 2020-9-17 16:46:54 | 显示全部楼层

只有我刷不出来图片吗
回复

使用道具 举报

luohua

发表于 2020-9-18 15:50:31 | 显示全部楼层

o
回复

使用道具 举报

yagamil

发表于 2020-9-20 03:28:24 | 显示全部楼层

let me check
回复

使用道具 举报

franky

发表于 2020-9-21 13:45:05 | 显示全部楼层

666
回复

使用道具 举报

zjw

发表于 2020-9-22 14:15:51 | 显示全部楼层

6
回复

使用道具 举报

frank

发表于 2020-9-22 14:25:52 | 显示全部楼层

666
回复

使用道具 举报

小铁匠

发表于 2020-9-22 16:36:14 | 显示全部楼层

666
回复

使用道具 举报