苹果CMS播放页面被绑架 跳转到qp网站的解决方案

苹果CMS播放页面被绑架 跳转到qp网站的解决方案

本文从笔者自身的分析方式分析了CMS作者故意留下的JS漏洞的位置和外部JS的生前加载过程。多事之秋,以华为为代表的我国创新型企业不怕外部压迫,用铁骑技术和超脱人的视角证明了中华儿女的不屈不挠,从金库中取出的自主开发备份芯片和操作系统展现了中华民族的铁骨。作为知名人士,我作为流中华血的开发者,对此深感自豪,回头看苹果CMS开发者,知道自己CMS用户基础水平不足,却在源代码上留下漏洞,不顾来源口碑和未来发展,强行绑架用户访问,罪恶之手伸向本国同胞。其心灵扭曲实际上是汉语言文化圈开发者最大的耻辱。ShameOnYou!被推测为苹果CMS作家的王某前天在苹果CMS网站域名17日晚被绑架的手套上发表了评论。但是,由于苹果CMS在用户不知情的情况下使用加密的js文件调用外部地址,因此此次影响很大。

解决方案# #

22日再次更新:加载前页面也被绑架。背景-系统设置-设置播放器参数下要做预加载广告。缓冲区广告:删除两个内容,如果版本不同,可以找到并删除与预加载和缓冲区地址相似的选项

为了方便对两个页面的调用,没有广告牌的干净页面也可以上传到GitHub,将两个文件本地化即可~

为了节省大家的时间,笔者首先贴了以下解决方案。

为了节省大家的时间,两个文件都已经上传到GitHub了,大家直接下载就可以了!

Github地址:

点击这里

1.对站点根/static/js/player.js中的文件进行以下更改

对于V10版本的用户

` ` ` ` ` ` ` html

VarMacPlayer={

GetUrl’: function(s,n) {

Returnthis.link.replace(‘{sid} ‘,s)。replace(‘{sid} ‘,s)。replace(‘{NID

},

Go’: function(s,n) {

Location.href=this。GetUrl(s,n)

},

“show”3360 function(){

$ (‘# buffer’)。ATTR(‘SRC’,this. Prestrain);

SetTimeout(function() {

MacPlayer。AdsEnd()

},this。Second* 1000);

$ (‘# playleft’)。get(0)。innerhtml=this.html

Vara=document.createelement(“脚本”);

A.类型=“文本/JavaScript”;

A.async=true

A. Charset=’ utf-8 ‘;

A.src=

varb=document. getelementsbytagname(‘ script’);

B.parentNode.insertBefore(a,b)

},

AdsStart’: function() {

If($(‘#buffer’))。attr(‘src’)!=this。Buffer) {

$ (‘# buffer’)。ATTR(“SRC”,this.buffer)。

}

$(‘#buffer’)。show()

},

AdsEnd’: function() {

$(‘#buffer’)。hide()

},

Install’: function() {

This。Status=false

$(‘#install’)。show()

},

Play’: function() {

document. write(‘ ‘ ‘ ‘);

This.height=$(‘ .MACplayer)。get(0)。offsetheigh
t;
      this.Width = $(‘.MacPlayer’).get(0).offsetWidth;
      document.write(”)
    },
    ‘Down’: function() {},
    ‘Init’: function() {
      this.Status = true;
      this.Parse = ”;
      if (player_data.encrypt == ‘1’) {
            player_data.url = unescape(player_data.url);
            player_data.url_next = unescape(player_data.url_next)
      } else if (player_data.encrypt == ‘2’) {
            player_data.url = unescape(base64decode(player_data.url));
            player_data.url_next = unescape(base64decode(player_data.url_next))
      }
      this.Prestrain = MacPlayerConfig.prestrain;
      this.Buffer = MacPlayerConfig.buffer;
      this.Second = MacPlayerConfig.second;
      this.Flag = player_data.flag;
      this.Trysee = player_data.trysee;
      this.Points = player_data.points;
      this.Link = decodeURIComponent(player_data.link);
      this.PlayFrom = player_data.from;
      this.PlayNote = player_data.note;
      this.PlayServer = player_data.server == ‘no’ ? ” : player_data.server;
      this.PlayUrl = player_data.url;
      this.PlayUrlNext = player_data.url_next;
      this.PlayLinkNext = player_data.link_next;
      this.PlayLinkPre = player_data.link_pre;
      if (MacPlayerConfig.server_list != undefined) {
            this.PlayServer = MacPlayerConfig.server_list.des
      }
      if (MacPlayerConfig.player_list != undefined) {
            if (MacPlayerConfig.player_list.ps == “1”) {
                this.Parse = MacPlayerConfig.player_list.parse == ” ? MacPlayerConfig.parse : MacPlayerConfig.player_list.parse;
                this.PlayFrom = ‘parse’
            }
      }
      this.Path = maccms.path + ‘/static/player/’;
      if (this.Flag == “down”) {
            MacPlayer.Down()
      } else {
            MacPlayer.Play()
      }
    }
};
MacPlayer.Init();
“`
对于v8版本用户:
“`html
window.onresize = function() {
    if (window.name == “macopen1”) {
      MacPlayer.Width = $(window).width() – $(“.MacPlayer”).offset().left – 15;
      MacPlayer.HeightAll = $(window).height() – $(“.MacPlayer”).offset().top – 15;
      MacPlayer.Height = MacPlayer.HeightAll;
      if (mac_showtop == 1) {
            MacPlayer.Height -= 20
      }
      $(“.MacPlayer”).width(MacPlayer.Width);
      $(“.MacPlayer”).height(MacPlayer.HeightAll);
      $(“#buffer”).width(MacPlayer.Width);
      $(“#buffer”).height(MacPlayer.HeightAll);
      $(“#Player”).width(MacPlayer.Width);
      $(“#Player”).height(MacPlayer.Height)
    }
}
;
var MacPlayer = {
    ‘GoPreUrl’: function() {
      if (this.Num > 0) {
            this.Go(this.Src + 1, this.Num)
      }
    },
    ‘GetPreUrl’: function() {
      return this.Num > 0 ? this.GetUrl(this.Src + 1, this.Num) : ”
    },
    ‘GoNextUrl’: function() {
      if (this.Num + 1 != this.PlayUrlLen) {
            this.Go(this.Src + 1, this.Num + 2)
      }
    },
    ‘GetNextUrl’: function() {
      return this.Num + 11) {
                  name = urlinfo;
                  url = urlinfo;
                  if (urlinfo.length > 2) {
                        from1 = urlinfo
                  }
                } else {
                  name = “第” + (j + 1) + “集”;
                  url = urlinfo
                }
                if (this.Src == i && this.Num == j) {
                  sid_on = ‘h2_on’;
                  sub_on = ‘block’;
                  list_on = “list_on”;
                  this.PlayUrlLen = urlarr.length;
                  this.PlayUrl = url;
                  this.PlayName = name;
                  if (from1 != ”) {
                        this.PlayFrom = from1
                  }
                  if (j1) {
                            name1 = urlinfo;
                            url1 = urlinfo
                        } else {
                            name1 = “第” + (j + 1) + “集”;
                            url1 = urlinfo
                        }
                        this.PlayUrl1 = url1;
                        this.PalyName1 = name1
                  }
                }
                listr += ‘[*]’ + name + ”
            }
            this.RightList += ” + mac_show + ” + ” + listr + ”
      }
    },
    ‘ShowList’: function() {
      $(‘#playright’).toggle()
    },
    ‘Tabs’: function(a, n) {
      var b = $(‘#sub’ + a).css(‘display’);
      for (var i = 0; i ‘)
    },
    ‘ShowBuffer’: function() {
      var w = this.Width – 100;
      var h = this.Height – 100;
      var l = (this.Width – w) / 2;
      var t = (this.Height – h) / 2 + 20;
      $(“.MacBuffer”).css({
            ‘width’: w,
            ‘height’: h,
            ‘left’: l,
            ‘top’: t
      });
      $(“.MacBuffer”).toggle()
    },
    ‘AdsEnd’: function() {
      $(‘#buffer’).hide()
    },
    ‘Install’: function() {
      this.Status = false;
      $(‘#install’).parent().show();
      $(‘#install’).show()
    },
    ‘Play’: function() {
      var a = mac_colors.split(‘,’);
      document.write(‘.MacPlayer{background: #’ + a + ‘;font-size:14px;color:#’ + a + ‘;margin:0px;padding:0px;position:relative;overflow:hidden;width:’ + (this.Width == 0 ? ‘100%’ : this.Width + ‘px’) + ‘;height:’ + this.HeightAll + ‘px;}.MacPlayer a{color:#’ + a + ‘;text-decoration:none}a:hover{text-decoration: underline;}.MacPlayer a:active{text-decoration: none;}.MacPlayer table{width:100%;height:100%;}.MacPlayer ul,li,h2{ margin:0px; padding:0px; list-style:none}.MacPlayer #playtop{text-align:center;height:20px; line-height:21px;font-size:12px;}.MacPlayer #topleft{width:150px;}.MacPlayer #topright{width:100px;} .MacPlayer #topleft{text-align:left;padding-left:5px}.MacPlayer #topright{text-align:right;padding-right:5px}.MacPlayer #playleft{width:100%;height:100%;overflow:hidden;}.MacPlayer #playright{height:100%;overflow-y:auto;}.MacPlayer #rightlist{width:120px;overflow:auto;scrollbar-face-color:#’ + a + ‘;scrollbar-arrow-color:#’ + a + ‘;scrollbar-track-color: #’ + a + ‘;scrollbar-highlight-color:#’ + a + ‘;scrollbar-shadow-color: #’ + a + ‘;scrollbar-3dlight-color:#’ + a + ‘;scrollbar-darkshadow-color:#’ + a + ‘;scrollbar-base-color:#’ + a + ‘;}.MacPlayer #rightlist ul{ clear:both; margin:5px 0px}.MacPlayer #rightlist li{ height:21px; line-height:21px;overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}.MacPlayer #rightlist li a{padding-left:15px; display:block; font-size:12px}.MacPlayer #rightlist h2{ cursor:pointer;font-size:13px;font-family: “宋体”;font-weight:normal;height:25px;line-height:25px;background:#’ + a + ‘;padding-left:5px; margin-bottom:1px}.MacPlayer #rightlist .h2{color:#’ + a + ‘}.MacPlayer #rightlist .h2_on{color:#’ + a + ‘}.MacPlayer #rightlist .ul_on{display:block}.MacPlayer #rightlist .list_on{color:#’ + a + ‘} 上一集 下一集开/关列表 ‘);
      document.write(”)
    },
    ‘Down’: function() {},
    ‘Init’: function() {
      this.Status = true;
      this.Url = location.href;
      this.Par = location.search;
      this.Data = {
            ‘from’: mac_from.split(‘$$$’),
            ‘server’: mac_server.split(‘$$$’),
            ‘note’: mac_note.split(‘$$$’),
            ‘url’: mac_url.split(‘$$$’)
      };
      var c = navigator.userAgent.toLowerCase();
      this.Width = window.name == ‘macopen1’ ? mac_widthpop : (mac_width == 0 ? ‘100%’ : mac_width);
      this.HeightAll = window.name == ‘macopen1’ ? mac_heightpop : mac_height;
      if (c.indexOf(“android”) > 0 || c.indexOf(“mobile”) > 0 || c.indexOf(“ipod”) > 0 || c.indexOf(“ios”) > 0 || c.indexOf(“iphone”) > 0 || c.indexOf(“ipad”) > 0) {
            this.Width = window.name == ‘macopen1’ ? mac_widthpop : (mac_widthmob == 0 ? ‘100%’ : mac_widthmob);
            this.HeightAll = window.name == ‘macopen1’ ? mac_heightpop : mac_heightmob
      }
      this.Height = this.HeightAll;
      if (mac_showtop == 1) {
            this.Height -= 20
      }
      if (this.Url.indexOf(‘#’) > -1) {
            this.Url = this.Url.substr(0, this.Url.indexOf(‘#’))
      }
      this.Prestrain = mac_prestrain;
      this.Buffer = mac_buffer;
      this.Second = mac_second;
      this.Flag = mac_flag;
      var a = this.Url.match(/\d+.*(htm)/g).match(/\d+/g);
      if (a.length assign(‘player_js’, ”);
“`
更改为:
“`javascript
$this->assign(‘player_js’, ”);
“`
曲折的劫持位置分析和修复过程

本站出售的源码只允许用于合法用途,以及学习交流技术层面,凡是用于非法用途的与本站无关,本人不承担任何责任!未经本站允许不得转载、倒卖克胡网络 » 苹果CMS播放页面被绑架 跳转到qp网站的解决方案
分享到:
赞(0)

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
Hello,欢迎来咨询~