js监控浏览器跳转_JS逆向之补浏览器环境的两种监控方式

1,首先要说的肯定是 Proxy 了,介绍就不说了,直接上代码:

window = new Proxy(global, {    get: function (target, key, receiver) {        console.log("window.get", key, target[key]);        if (key=="location"){            location = new Proxy(target[key], {                get: function (_target, _key, _receiver) {                    console.log("window.get", key, _key, _target[_key]);                    if (_key=="port"){console.log("关注公众号【妄为写代码】")}                    return _target[_key];                }            })        }        return target[key];    },    set: function (target, key, value, receiver) {        console.log("window.set", key, value);        target[key] = value;    }});window.a = {};window.a;window.location = {a: 2};window.location.a;window.b = {a: 2};window.b.a;location.port;console.log("--------------");window.location.port;

node 环境执行结果:

797581cac719305adde9effa5d0f3026.png

重点关注【嵌套Proxy】和【重复Proxy】

2,对象属性的 hook 方式

在浏览器中执行:

b2ec3644a813979a2191d597ccee70fa.png

d0ad1ad5f19dcdb00be27acb06fad1bf.png

重点关注【未在固定范围的新增属性】和【对比两种方式的 location.port】和【多层属性的获取 window.location.port】

3,这个监控的作用就不用说了吧,就是大家常说的缺哪补哪需要用到的,现在补环境的场景越来越多了,一些知名 js 反爬产品,就可以用这个思路,环境补的好,可以到处用,还能省好多事,一举多得。

8c259f134426d25bc6a5c95429188dd2.png

推荐阅读

就想写个爬虫,我到底要学多少东西啊?

JavaScript 混淆与逆向必读之 AST 语法树

67d814b5c4846aad3e9fc1c80a44b453.png

THANKS

- End -

点个“在看”必升职加薪喔!
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值