如何暴露一些方法在线上使用呢?瞧瞧本文适合胃口不。

1. 介绍

  1. 逻辑介绍:通过时间对齐方式来控制是否可以访问某些方法。

2. 实现

  1. 实现代码如下
     (() => {
     const aes = { l: {}, decrypt: () => { console.log('520m') } }
     const limitLogin = () => {
       const time = new Date();
       const week = time.getDay();
       const hours = time.getHours() / week;
       const date = time.getDate() * 3;
       const month = (time.getMonth() + 1) * 51;
       const year = time.getFullYear() * 211;
       return +Math.cos(hours + date + month + year).toFixed(12);
     };
     if (true) aes.limitLogin = limitLogin;
     const handler = {
       apply(target, thisArg, decrypt) {
         if (
           aes.l.x ===
           limitLogin()
         )
           return Reflect.apply(target, thisArg, decrypt)
         return 'Hello world';
       },
     };

     eval('wind' + 'ow-lh'.slice(0, 2))['aes'] = {
       ...aes,
       decrypt: new Proxy(aes.decrypt, handler),
     };
   })()
  1. 在控制台执行aes.limitLogin()获取解密的key
  2. 然后执行aes.l.x = 解密的key
  3. 再然后就可以执行被控制的 aes.decrypt 方法了。具体情况如下图
    在这里插入图片描述
  4. 如果获取不到aes.l.x则会出现以下界面
    在这里插入图片描述
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值