Help
RSS
API
Feed
Maltego
Contact
Domain > 954aws.top
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-08-30
104.21.74.203
(
ClassC
)
2026-03-05
172.67.206.60
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Thu, 05 Mar 2026 10:23:19 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveServer: cloudflareLast-Modified: Mon, 22 Dec 2025 06:37:54 GMTNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Report-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sLNKTRIR8BQwdSrcZU828GWg77H4GAJLsfzMBkxI7bbe%2FF2INdsg9W3o2Lv7b251LoK13krAJ0blQOyr6wHZiIhdfbP%2FS%2BaB4}}Access-Control-Allow-Origin: *Access-Control-Allow-Methods: GET, POST, OPTIONSAccess-Control-Allow-Headers: *Accept-Ranges: bytescf-cache-status: DYNAMICCF-RAY: 9d78678f3aba9d6b-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html langen> head> meta charsetUTF-8 /> link relicon hreflogo.ico /> link relapple-touch-icon hreflogo.png /> meta http-equivCache-Control contentno-siteapp /> meta nametheme-color content#000000 /> meta idtheme-meta nametheme-color content#1b1b1b /> meta namemsapplication-navbutton-color contentrgb(15, 15, 15) /> !-- iOS Safari --> meta nameapple-touch-fullscreen contentyes /> meta nameapple-mobile-web-app-capable contentyes /> meta nameapple-mobile-web-app-status-bar-style contentblack /> meta nameviewport contentwidthdevice-width, initial-scale1.0, maximum-scale1.0, minimum-scale1.0, viewport-fitcover, user-scalableno /> meta namedescription content与亲朋好友及全世界分享您的视频 /> meta namekeywords content视频 /> title>MANGO发布网站/title> style typetext/css> @charset utf-8; /* CSS Document */ @charset utf-8; /*! * @名称:base.css * @功能:1、重设浏览器默认样式 * 2、设置通用原子类 */ /* 防止用户自定义背景颜色对网页的影响,添加让用户可以自定义字体 */ html { color:black; } /* 内外边距通常让各个浏览器样式的表现位置不同 */ body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { margin:0; padding:0; } /* 要注意表单元素并不继承父级 font 的问题 */ body,button,input,select,textarea { font:12px \5b8b\4f53,arial,sans-serif; } input,select,textarea { font-size:100%; } /* 去掉 table cell 的边距并让其边重合 */ table { border-collapse:collapse; border-spacing:0; } /* ie bug:th 不继承 text-align */ th { text-align:inherit; } /* 去除默认边框 */ fieldset,img { border:none; } /* ie6 7 8(q) bug 显示为行内表现 */ iframe { display:block; } /* 去掉 firefox 下此元素的边框 */ abbr,acronym { border:none; font-variant:normal; } /* 一致的 del 样式 */ del { text-decoration:line-through; } address,caption,cite,code,dfn,em,th,var { font-style:normal; font-weight:500; } /* 去掉列表前的标识,li 会继承 */ ol,ul { list-style:none; } /* 对齐是排版最重要的因素,别让什么都居中 */ caption,th { text-align:left; } /* 来自yahoo,让标题都自定义,适应多个系统应用 */ h1,h2,h3,h4,h5,h6 { font-size:100%; font-weight:500; } q:before,q:after { content:; } /* 统一上标和下标 */ sub,sup { font-size:75%; line-height:0; position:relative; vertical-align:baseline; } sup { top:-0.5em; } sub { bottom:-0.25em; } /* 让链接在 hover 状态下显示下划线 */ a:hover { text-decoration:underline; } /* 默认不显示下划线,保持页面简洁 */ ins,a { text-decoration:none; } /* 去除 ie6 & ie7 焦点点状线 */ a:focus,*:focus { outline:none; } /* 清除浮动 */ .clearfix:before,.clearfix:after { content:; display:table; } .clearfix:after { clear:both; overflow:hidden; } .clearfix { zoom:1; /* for ie6 & ie7 */ } .clear { clear:both; display:block; font-size:0; height:0; line-height:0; overflow:hidden; } /* 设置显示和隐藏,通常用来与 js 配合 */ .hide { display:none; } .block { display:block; } /* 设置浮动,减少浮动带来的 bug */ .fl,.fr { display:inline; } .fl { float:left; } .fr { float:right; } /style> style typetext/css> html, body { width: 100vw; height: 100vh; } body { display: flex; align-items: center; justify-content: center; } @media screen and (min-width: 1024px) { body{ position: relative; } .pcbg { width: 100vw; height: 100vh; position: absolute; top:0; left:0; z-index: -1; } .h5bg { display: none; } .con { display: flex; flex-direction: column; align-items: center; width: 20%; } .con .publish{ width: 80%; } .con .logo{ width: 45%; margin-top: 20px; margin-bottom: 15px; } .con .save{ width: 100%; margin-top: 50px; margin-bottom: 30px; } .con .forever, .con .alternative { font-size: 1rem; font-weight: 500; color:#430202; display: inline-block; margin-top: 15px; /* width: 100%; text-align: left; */ width: 200%; text-align: center; opacity: 0; } .con .forever { /* display: flex; */ display: none; align-items: center; justify-content: center; margin-bottom:10px; } .con .forever #forever, .con .alternative #alternative { text-decoration: underline; cursor: pointer; } .con .btn{ width: 120%; margin-top: 15px; position: relative; } .con .btn img { width: 100%; } .con .btn span { position: absolute; top: 50%; left:50%; transform: translate(-50%, -50%); color:#fff; font-weight: bold; font-size: 1.2rem; } .con .list{ width: 120%; display: flex; flex-wrap: wrap; flex-direction: row; margin-top: 5px; gap: 4%; } .con .list .item { width: 48%; position: relative; cursor: pointer; margin-top: 15px; } .con .list .item img { width: 100%; } .con .list .item span { position: absolute; top: 50%; left:50%; transform: translate(-50%, -50%); color: #F88336; font-weight: bold; text-decoration: underline; } } @media screen and (max-width: 768px) { body{ /* background-image: url(h5_bg_wide.jpg); background-size: cover; */ position: relative; overflow-x: hidden; } .pcbg{ display: none; } .h5bg{ position: absolute; top: 0; left: 50%; height: 100vh; z-index: -1; transform: translateX(-50%); overflow-x: none; } .con { display: flex; flex-direction: column; align-items: center; width: 80%; } .con .publish{ width: 80%; } .con .logo{ width: 45%; margin-top: 20px; margin-bottom: 30px; } .con .save{ width: 100%; margin-top:30px; margin-bottom: 30px; } .con .forever, .con .alternative { font-size: 1rem; font-weight: 500; color:#430202; /* display: inline-block; */ display: none; margin-top: 15px; width: 90%; text-align: left; } .con .forever #forever, .con .alternative #alternative { text-decoration: underline; cursor: pointer; } .con .btn{ width: 120%; margin-top: 15px; position: relative; } .con .btn img { width: 100%; } .con .btn span { position: absolute; top: 50%; left:50%; transform: translate(-50%, -50%); color:#fff; font-weight: bold; font-size: 1.2rem; } .con .list{ width: 120%; display: flex; flex-wrap: wrap; flex-direction: row; margin-top: 5px; gap: 4%; } .con .list .item { width: 48%; position: relative; cursor: pointer; margin-top: 15px; } .con .list .item img { width: 100%; } .con .list .item span { position: absolute; top: 50%; left:50%; transform: translate(-50%, -50%); color: #F88336; font-weight: bold; text-decoration: underline; font-size: 1.05rem; text-align: center; width: 90%; } } /style> /head> body styleposition: relative;> img classpcbg srcpc_bg_new.jpg /> img classh5bg srch5_bg_wide_new.jpg /> div classcon> img classpublish srcpublish.png /> img classlogo src永久地址.png /> img classsave srcsave.png /> span classforever>备用地址:img srcd.png idforever />/label>/span> div classbtn idbtn> img srcbar.png /> span>页面请截屏保存/span> /div> div classlist> div classitem> img srcitem.png /> span>最新地址一/span> /div> div classitem> img srcitem.png /> span>最新地址二/span> /div> /div> /div> script srchttps://css.zzmgtv.net/chat-admin/chat-widget-standalone.js>/script> script srcjQuery.js>/script> script srcaxios.min.js>/script> script srcfp.min.js>/script> script srcclipboard.min.js>/script> script typetext/javascript> var CryptoJSCryptoJS||function(u,p){var d{},ld.lib{},sfunction(){},tl.Base{extend:function(a){s.prototypethis;var cnew s;a&&c.mixIn(a);c.hasOwnProperty(init)||(c.initfunction(){c.$super.init.apply(this,arguments)});c.init.prototypec;c.$superthis;return c},create:function(){var athis.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(thiscac);a.hasOwnProperty(toString)&&(this.toStringa.toString)},clone:function(){return this.init.prototype.extend(this)}}, rl.WordArrayt.extend({init:function(a,c){athis.wordsa||;this.sigBytesc!p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var cthis.words,ea.words,jthis.sigBytes;aa.sigBytes;this.clamp();if(j%4)for(var k0;ka;k++)cj+k>>>2|(ek>>>2>>>24-8*(k%4)&255)24-8*((j+k)%4);else if(65535e.length)for(k0;ka;k+4)cj+k>>>2ek>>>2;else c.push.apply(c,e);this.sigBytes+a;return this},clamp:function(){var athis.words,cthis.sigBytes;ac>>>2&4294967295 32-8*(c%4);a.lengthu.ceil(c/4)},clone:function(){var at.clone.call(this);a.wordsthis.words.slice(0);return a},random:function(a){for(var c,e0;ea;e+4)c.push(4294967296*u.random()|0);return new r.init(c,a)}}),wd.enc{},vw.Hex{stringify:function(a){var ca.words;aa.sigBytes;for(var e,j0;ja;j++){var kcj>>>2>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join()},parse:function(a){for(var ca.length,e,j0;jc;j+2)ej>>>3|parseInt(a.substr(j, 2),16)24-4*(j%8);return new r.init(e,c/2)}},bw.Latin1{stringify:function(a){var ca.words;aa.sigBytes;for(var e,j0;ja;j++)e.push(String.fromCharCode(cj>>>2>>>24-8*(j%4)&255));return e.join()},parse:function(a){for(var ca.length,e,j0;jc;j++)ej>>>2|(a.charCodeAt(j)&255)24-8*(j%4);return new r.init(e,c)}},xw.Utf8{stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error(Malformed UTF-8 data);}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}}, ql.BufferedBlockAlgorithmt.extend({reset:function(){this._datanew r.init;this._nDataBytes0},_append:function(a){stringtypeof a&&(ax.parse(a));this._data.concat(a);this._nDataBytes+a.sigBytes},_process:function(a){var cthis._data,ec.words,jc.sigBytes,kthis.blockSize,bj/(4*k),ba?u.ceil(b):u.max((b|0)-this._minBufferSize,0);ab*k;ju.min(4*a,j);if(a){for(var q0;qa;q+k)this._doProcessBlock(e,q);qe.splice(0,a);c.sigBytes-j}return new r.init(q,j)},clone:function(){var at.clone.call(this); a._datathis._data.clone();return a},_minBufferSize:0});l.Hasherq.extend({cfg:t.extend(),init:function(a){this.cfgthis.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createHmacHelper:function(a){return function(b,e){return(new n.HMAC.init(a, e)).finalize(b)}}});var nd.algo{};return d}(Math); (function(){var uCryptoJS,pu.lib.WordArray;u.enc.Base64{stringify:function(d){var ld.words,pd.sigBytes,tthis._map;d.clamp();d;for(var r0;rp;r+3)for(var w(lr>>>2>>>24-8*(r%4)&255)16|(lr+1>>>2>>>24-8*((r+1)%4)&255)8|lr+2>>>2>>>24-8*((r+2)%4)&255,v0;4>v&&r+0.75*vp;v++)d.push(t.charAt(w>>>6*(3-v)&63));if(lt.charAt(64))for(;d.length%4;)d.push(l);return d.join()},parse:function(d){var ld.length,sthis._map,ts.charAt(64);t&&(td.indexOf(t),-1!t&&(lt));for(var t,r0,w0;w l;w++)if(w%4){var vs.indexOf(d.charAt(w-1))2*(w%4),bs.indexOf(d.charAt(w))>>>6-2*(w%4);tr>>>2|(v|b)24-8*(r%4);r++}return p.create(t,r)},_map:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/}})(); (function(u){function p(b,n,a,c,e,j,k){bb+(n&a|~n&c)+e+k;return(bj|b>>>32-j)+n}function d(b,n,a,c,e,j,k){bb+(n&c|a&~c)+e+k;return(bj|b>>>32-j)+n}function l(b,n,a,c,e,j,k){bb+(n^a^c)+e+k;return(bj|b>>>32-j)+n}function s(b,n,a,c,e,j,k){bb+(a^(n|~c))+e+k;return(bj|b>>>32-j)+n}for(var tCryptoJS,rt.lib,wr.WordArray,vr.Hasher,rt.algo,b,x0;64>x;x++)bx4294967296*u.abs(u.sin(x+1))|0;rr.MD5v.extend({_doReset:function(){this._hashnew w.init(1732584193,4023233417,2562383102,271733878)}, _doProcessBlock:function(q,n){for(var a0;16>a;a++){var cn+a,eqc;qc(e8|e>>>24)&16711935|(e24|e>>>8)&4278255360}var athis._hash.words,cqn+0,eqn+1,jqn+2,kqn+3,zqn+4,rqn+5,tqn+6,wqn+7,vqn+8,Aqn+9,Bqn+10,Cqn+11,uqn+12,Dqn+13,Eqn+14,xqn+15,fa0,ma1,ga2,ha3,fp(f,m,g,h,c,7,b0),hp(h,f,m,g,e,12,b1),gp(g,h,f,m,j,17,b2),mp(m,g,h,f,k,22,b3),fp(f,m,g,h,z,7,b4),hp(h,f,m,g,r,12,b5),gp(g,h,f,m,t,17,b6),mp(m,g,h,f,w,22,b7), fp(f,m,g,h,v,7,b8),hp(h,f,m,g,A,12,b9),gp(g,h,f,m,B,17,b10),mp(m,g,h,f,C,22,b11),fp(f,m,g,h,u,7,b12),hp(h,f,m,g,D,12,b13),gp(g,h,f,m,E,17,b14),mp(m,g,h,f,x,22,b15),fd(f,m,g,h,e,5,b16),hd(h,f,m,g,t,9,b17),gd(g,h,f,m,C,14,b18),md(m,g,h,f,c,20,b19),fd(f,m,g,h,r,5,b20),hd(h,f,m,g,B,9,b21),gd(g,h,f,m,x,14,b22),md(m,g,h,f,z,20,b23),fd(f,m,g,h,A,5,b24),hd(h,f,m,g,E,9,b25),gd(g,h,f,m,k,14,b26),md(m,g,h,f,v,20,b27),fd(f,m,g,h,D,5,b28),hd(h,f, m,g,j,9,b29),gd(g,h,f,m,w,14,b30),md(m,g,h,f,u,20,b31),fl(f,m,g,h,r,4,b32),hl(h,f,m,g,v,11,b33),gl(g,h,f,m,C,16,b34),ml(m,g,h,f,E,23,b35),fl(f,m,g,h,e,4,b36),hl(h,f,m,g,z,11,b37),gl(g,h,f,m,w,16,b38),ml(m,g,h,f,B,23,b39),fl(f,m,g,h,D,4,b40),hl(h,f,m,g,c,11,b41),gl(g,h,f,m,k,16,b42),ml(m,g,h,f,t,23,b43),fl(f,m,g,h,A,4,b44),hl(h,f,m,g,u,11,b45),gl(g,h,f,m,x,16,b46),ml(m,g,h,f,j,23,b47),fs(f,m,g,h,c,6,b48),hs(h,f,m,g,w,10,b49),gs(g,h,f,m, E,15,b50),ms(m,g,h,f,r,21,b51),fs(f,m,g,h,u,6,b52),hs(h,f,m,g,k,10,b53),gs(g,h,f,m,B,15,b54),ms(m,g,h,f,e,21,b55),fs(f,m,g,h,v,6,b56),hs(h,f,m,g,x,10,b57),gs(g,h,f,m,t,15,b58),ms(m,g,h,f,D,21,b59),fs(f,m,g,h,z,6,b60),hs(h,f,m,g,C,10,b61),gs(g,h,f,m,j,15,b62),ms(m,g,h,f,A,21,b63);a0a0+f|0;a1a1+m|0;a2a2+g|0;a3a3+h|0},_doFinalize:function(){var bthis._data,nb.words,a8*this._nDataBytes,c8*b.sigBytes;nc>>>5|12824-c%32;var eu.floor(a/ 4294967296);n(c+64>>>94)+15(e8|e>>>24)&16711935|(e24|e>>>8)&4278255360;n(c+64>>>94)+14(a8|a>>>24)&16711935|(a24|a>>>8)&4278255360;b.sigBytes4*(n.length+1);this._process();bthis._hash;nb.words;for(a0;4>a;a++)cna,na(c8|c>>>24)&16711935|(c24|c>>>8)&4278255360;return b},clone:function(){var bv.clone.call(this);b._hashthis._hash.clone();return b}});t.MD5v._createHelper(r);t.HmacMD5v._createHmacHelper(r)})(Math); (function(){var uCryptoJS,pu.lib,dp.Base,lp.WordArray,pu.algo,sp.EvpKDFd.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfgthis.cfg.extend(d)},compute:function(d,r){for(var pthis.cfg,sp.hasher.create(),bl.create(),ub.words,qp.keySize,pp.iterations;u.lengthq;){n&&s.update(n);var ns.update(d).finalize(r);s.reset();for(var a1;ap;a++)ns.finalize(n),s.reset();b.concat(n)}b.sigBytes4*q;return b}});u.EvpKDFfunction(d,l,p){return s.create(p).compute(d, l)}})(); CryptoJS.lib.Cipher||function(u){var pCryptoJS,dp.lib,ld.Base,sd.WordArray,td.BufferedBlockAlgorithm,rp.enc.Base64,wp.algo.EvpKDF,vd.Ciphert.extend({cfg:l.extend(),createEncryptor:function(e,a){return this.create(this._ENC_XFORM_MODE,e,a)},createDecryptor:function(e,a){return this.create(this._DEC_XFORM_MODE,e,a)},init:function(e,a,b){this.cfgthis.cfg.extend(b);this._xformModee;this._keya;this.reset()},reset:function(){t.reset.call(this);this._doReset()},process:function(e){this._append(e);return this._process()}, finalize:function(e){e&&this._append(e);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(b,k,d){return(stringtypeof k?c:a).encrypt(e,b,k,d)},decrypt:function(b,k,d){return(stringtypeof k?c:a).decrypt(e,b,k,d)}}}});d.StreamCipherv.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var bp.mode{},xfunction(e,a,b){var cthis._iv;c?this._ivu:cthis._prevBlock;for(var d0;db;d++)ea+d^ cd},q(d.BlockCipherModel.extend({createEncryptor:function(e,a){return this.Encryptor.create(e,a)},createDecryptor:function(e,a){return this.Decryptor.create(e,a)},init:function(e,a){this._ciphere;this._iva}})).extend();q.Encryptorq.extend({processBlock:function(e,a){var bthis._cipher,cb.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlocke.slice(a,a+c)}});q.Decryptorq.extend({processBlock:function(e,a){var bthis._cipher,cb.blockSize,de.slice(a,a+c);b.decryptBlock(e,a);x.call(this, e,a,c);this._prevBlockd}});bb.CBCq;q(p.pad{}).Pkcs7{pad:function(a,b){for(var c4*b,cc-a.sigBytes%c,dc24|c16|c8|c,l,n0;nc;n+4)l.push(d);cs.create(l,c);a.concat(c)},unpad:function(a){a.sigBytes-a.wordsa.sigBytes-1>>>2&255}};d.BlockCipherv.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var athis.cfg,ba.iv,aa.mode;if(this._xformModethis._ENC_XFORM_MODE)var ca.createEncryptor;else ca.createDecryptor,this._minBufferSize1;this._modec.call(a, this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var athis.cfg.padding;if(this._xformModethis._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var bthis._process(!0)}else bthis._process(!0),a.unpad(b);return b},blockSize:4});var nd.CipherParamsl.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b(p.format{}).OpenSSL{stringify:function(a){var ba.ciphertext;aa.salt;return(a?s.create(1398893684, 1701076831).concat(a).concat(b):b).toString(r)},parse:function(a){ar.parse(a);var ba.words;if(1398893684b0&&1701076831b1){var cs.create(b.slice(2,4));b.splice(0,4);a.sigBytes-16}return n.create({ciphertext:a,salt:c})}},ad.SerializableCipherl.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){dthis.cfg.extend(d);var la.createEncryptor(c,d);bl.finalize(b);ll.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})}, decrypt:function(a,b,c,d){dthis.cfg.extend(d);bthis._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){returnstringtypeof a?b.parse(a,this):a}}),p(p.kdf{}).OpenSSL{execute:function(a,b,c,d){d||(ds.random(8));aw.create({keySize:b+c}).compute(a,d);cs.create(a.words.slice(b),4*c);a.sigBytes4*b;return n.create({key:a,iv:c,salt:d})}},cd.PasswordBasedCiphera.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){lthis.cfg.extend(l);dl.kdf.execute(d, b.keySize,b.ivSize);l.ivd.iv;ba.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){lthis.cfg.extend(l);cthis._parse(c,l.format);dl.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.ivd.iv;return a.decrypt.call(this,b,c,d.key,l)}})}(); (function(){for(var uCryptoJS,pu.lib.BlockCipher,du.algo,l,s,t,r,w,v,b,x,q,n,a,c0;256>c;c++)ac128>c?c1:c1^283;for(var e0,j0,c0;256>c;c++){var kj^j1^j2^j3^j4,kk>>>8^k&255^99;lek;ske;var zae,Faz,GaF,y257*ak^16843008*k;tey24|y>>>8;rey16|y>>>16;wey8|y>>>24;vey;y16843009*G^65537*F^257*z^16843008*e;bky24|y>>>8;xky16|y>>>16;qky8|y>>>24;nky;e?(ez^aaaG^z,j^aaj):ej1}var H0,1,2,4,8, 16,32,64,128,27,54,dd.AESp.extend({_doReset:function(){for(var athis._key,ca.words,da.sigBytes/4,a4*((this._nRoundsd+6)+1),ethis._keySchedule,j0;ja;j++)if(jd)ejcj;else{var kej-1;j%d?6d&&4j%d&&(klk>>>2424|lk>>>16&25516|lk>>>8&2558|lk&255):(kk8|k>>>24,klk>>>2424|lk>>>16&25516|lk>>>8&2558|lk&255,k^Hj/d|024);ejej-d^k}cthis._invKeySchedule;for(d0;da;d++)ja-d,kd%4?ej:ej-4,cd4>d||4>j?k:blk>>>24^xlk>>>16&255^qlk>>> 8&255^nlk&255},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var dac+1;ac+1ac+3;ac+3d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);dac+1;ac+1ac+3;ac+3d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var mthis._nRounds,gab^c0,hab+1^c1,kab+2^c2,nab+3^c3,p4,r1;rm;r++)var qdg>>>24^eh>>>16&255^jk>>>8&255^ln&255^cp++,sdh>>>24^ek>>>16&255^jn>>>8&255^lg&255^cp++,t dk>>>24^en>>>16&255^jg>>>8&255^lh&255^cp++,ndn>>>24^eg>>>16&255^jh>>>8&255^lk&255^cp++,gq,hs,kt;q(fg>>>2424|fh>>>16&25516|fk>>>8&2558|fn&255)^cp++;s(fh>>>2424|fk>>>16&25516|fn>>>8&2558|fg&255)^cp++;t(fk>>>2424|fn>>>16&25516|fg>>>8&2558|fh&255)^cp++;n(fn>>>2424|fg>>>16&25516|fh>>>8&2558|fk&255)^cp++;abq;ab+1s;ab+2t;ab+3n},keySize:8});u.AESp._createHelper(d)})(); /script> !-- script defer srchttps://crawler.zzmgtv.net/script.js data-website-idb111fd3e-d2a4-44f8-aa7f-c84ffcba8f81>/script> --> script typetext/javascript> const AES_KEY f34923d8ef8a427d const AES_IV 3492302601345106 const key CryptoJS.enc.Utf8.parse(AES_KEY) // 十六位十六进制数作为密钥 const iv CryptoJS.enc.Utf8.parse(AES_IV) // 十六位十六进制数作为密钥偏移量 let inviteInfo null; // const isAndriod /Android/i.test(navigator.userAgent); // const isIOS /iPhone|iPad|iPod/i.test(navigator.userAgent); //协议 测试环境http 生产https const schme https://; const front /proxy/api/front; // const host http://18.163.32.129:18892; // 测试环境 const host /; // 线上环境 const getDomainListUrl `/front-domain/domain-list`; // 获取视频页地址列表 const appVersion /platform/app-version; // 获取flag const trackUserBehavior /res/track; // 记录用户行为 const clipboard1 new ClipboardJS(#forever, { text: function(trigger) { const parts 29t, cuY, tbW, bWd; const reversed parts.reverse().join(); return atob(reversed); // 解码后得到域名 } }); clipboard1.on(success, function(e) { alert(已复制) e.clearSelection(); }); const getInviteCode () > { let url decodeURIComponent(location.href) if (url.includes(?)) { inviteInfo url .split(?)1 .split(&) .reduce((tar, v) > { let key v.split() key0 channelCode && (tarmchCode key1?.replace(/(\#).*/, )) key0 inviteCode && (tarinvitationCode key1?.replace(/\#.*/, )) return tar }, {}); } return } getInviteCode(); let domainList ; //播放页列表 let collectList ; //收藏页列表 let userLocation null; // 地里位置对象 let ip2Error ; // 第二个ip接口的错误信息 const check domainList>{ const firstDomain domainList.shift(); const xhr new XMLHttpRequest(); xhr.open(GET, `${schme}${firstDomain.domain}`, true); xhr.onreadystatechange function(){ if(xhr.readyState4){ if(xhr.status200){ // 域名可用,直接跳转 window.location.href `${schme}${firstDomain.domain}?channelCode${inviteInfo?inviteInfo.mchCode: pingtai}`; }else{ // 域名不可用,调用下一个备用域名 if(domainList.length){ check(domainList); } } } } xhr.send(); } const track async (obj, cb)> { const browserId sessionStorage.getItem(fingerprintId); const data { trackType: 3, browserId, ...obj, }; request({ url: `${trackUserBehavior}`, method: POST, data}).then(res>{ const { code } res; if(code200 && cb){ cb(); } }); } const isMobile ()>{ // 判断是否为移动设备 return ( typeof window.orientation ! undefined || // 判断是否存在window.orientation属性,此属性在移动设备上一般存在 navigator.userAgent.indexOf(IEMobile) ! -1 || // 判断是否为Windows Phone navigator.userAgent.indexOf(iPhone) ! -1 || // 判断是否为iPhone navigator.userAgent.indexOf(Android) ! -1 && navigator.userAgent.indexOf(Mobile) ! -1 || // 判断是否为Android手机 navigator.userAgent.indexOf(BlackBerry) ! -1 || // 判断是否为BlackBerry navigator.userAgent.indexOf(Opera Mini) ! -1 // 判断是否为Opera Mini浏览器 ); } const getFingerprint async (cb, ip)>{ const fpPromise await FingerprintJS.load({debug: false}); // 调用FingerprintJS.load()返回一个Promise对象,用于加载和初始化FingerprintJS库。 // 可给FingerprintJS.load()传参{debug: true}开启调试模式 const result await fpPromise.get(); const { fontPreferences, audio, canvas, hardwareConcurrency, plugins, touchSupport, pdfViewerEnabled, screenResolution, localStorage, ...components } result.components; const extendedComponents { ...components, ip:{ value: ip, duration:0 }, userAgent: { value: navigator.userAgent, duration: 0, } }; // 调用fpPromise.get()获取访问者指纹信息,并返回一个包含指纹ID和其他信息的结果对象。 const fingerprintId FingerprintJS.hashComponents(extendedComponents); sessionStorage.setItem(fingerprintId, fingerprintId); track({ trackSourceName: 开始, trackTargetName: location.host, }); cb(); }; // 解密方法 const Decrypt function(word) { const base64 CryptoJS.enc.Base64.parse(word) const src CryptoJS.enc.Base64.stringify(base64) // 解密模式为CBC,补码方式为PKCS5Padding(也就是PKCS7) const decrypt CryptoJS.AES.decrypt(src, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, }) const decryptedStr decrypt.toString(CryptoJS.enc.Utf8) return decryptedStr.toString() } // 加密方法 const Encrypt function(word, newkey) { const srcs CryptoJS.enc.Utf8.parse(word) const nkey newkey ? CryptoJS.enc.Utf8.parse(newkey) : key const encrypted CryptoJS.AES.encrypt(srcs, nkey, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, }) return CryptoJS.enc.Base64.stringify(encrypted.ciphertext) } // console.log(Decrypt(Wt0ZZmuV+omn+ud/vhHlLGWMgq8ZanpeUtqEoLHbHvjsk0Ox9X0Fmu/E1HIXuQ6I), gggggg); // 创建 axios 实例 const request axios.create({ baseURL: host, timeout: 20000, // 请求超时时间 }); // 异常拦截处理器 const errorHandler error > { if (error.response) { const { data {}, status, statusText } error.response // 403 无权限 if (status 403) { // showNotify({ // type: danger, // message: (data && data.message) || statusText, // }) console.log(403 无权限); } // 401 未登录/未授权 if (status 401 && data.result && data.result.isLogin) { // showNotify({ // type: danger, // message: 未登录/未授权, // }) console.log(未登录/未授权); } } return Promise.reject(error) } // 请求拦截器 const requestHandler config > { // const common useCommon(pinia) // config.cancelToken new CancelToken((cancel > { // if (Whitelist.includes(config.url) || router.currentRoute?.value?.name Featured) return // common.pushRequest(cancel) // })) config.url front + config.url config.headersdevice isMobile()?2:1; // config.headerstoken common.userInfo?.token // const userInfo sessionStorage.getItem(userInfo); config.headerstoken undefined; if (config.method ! get) { const flag sessionStorage.getItem(flag); const realFlag flag ? flag : AES_KEY; config.dataflag realFlag; config.data { param: Encrypt(JSON.stringify(config.data), realFlag) } } return config } // Add a request interceptor request.interceptors.request.use(requestHandler, errorHandler) // 响应拦截器 const responseHandler response > { // const common useCommon(pinia) const obj JSON.parse(Decrypt(response.data.data)) response.data.data obj; let { code, msg } response.data if (code 200) { return response.data } else { switch (code) { case 401: // if (common.userInfo?.token!) { // router.push({ name: Home }) // common.clearHeartbeatTimer() // common.setUserInfo(null) // } console.log(未登录); return response.data break case 402: return response.data break case 2001: return response.data break case 2002: // showFailToast(msg) // common.setUserInfo(null) // location.reload(); // flag失效了 sessionStorage.removeItem(flag); location.reload(); break default: // showNotify({ // type: danger, // message: msg, // }) console.log(其他问题); return response.data } } // return response.data } // Add a response interceptor request.interceptors.response.use(responseHandler, errorHandler) // 获取地里位置 // const getUserLocation async ()>{ // try { // // 使用免费的IP地理位置API // const response await fetch(https://ipapi.co/json/); // const locationData await response.json(); // userLocation { // country: locationData.country_name || Unknown, // country_code: locationData.country || UN, // region: locationData.region || Unknown, // city: locationData.city || Unknown, // timezone: locationData.timezone || , // ip: locationData.ip || , // isp: locationData.org || // }; // return userLocation; // } catch (error) { // // 使用备用数据 // userLocation { // country: Unknown, // country_code: UN, // region: Unknown, // city: Unknown, // timezone: , // ip: , // isp: , // error: error.message // }; // return userLocation; // } // } // getUserLocation(); // 检测单个域名 // DNS解析检查 - 检测域名是否被劫持 const checkDNSResolution async (hostname)>{ return { resolved: true, ips: , hijacked: false, hijackedIPs: , allIPs: }; try { // 使用公共DNS API检查域名解析 const dnsResponse await fetch(`https://dns.google/resolve?name${hostname}&typeA`); // const dnsResponse await fetch(`https://sdns.360.net/dns?name${hostname}&typeA`); const dnsData await dnsResponse.json(); if (dnsData.Answer && dnsData.Answer.length > 0) { const ips dnsData.Answer .filter(answer > answer.type 1) // A记录 .map(answer > answer.data); // 检查是否被劫持到本地地址 const hijackedIPs ips.filter(ip > ip 127.0.0.1 || ip 0.0.0.0 || ip.startsWith(127.) || ip ::1 ); return { resolved: true, ips: ips, hijacked: hijackedIPs.length > 0, hijackedIPs: hijackedIPs, allIPs: ips }; } else { return { resolved: false, error: No DNS records found, hijacked: false }; } } catch (error) { return { resolved: false, error: error.message, hijacked: false }; } } const checkDomain async (url)>{ const startTime Date.now(); let hostname url; try { // 确保 URL 格式正确 if (!url.startsWith(http://) && !url.startsWith(https://)) { url https:// + url; hostname url.replace(https://, ).replace(http://, ); } else { hostname new URL(url).hostname; } // 先检查DNS解析 const dnsCheck await checkDNSResolution(hostname); // 网络连接测试 const controller new AbortController(); const timeoutId setTimeout(() > controller.abort(), 5000); let networkResult { accessible: false, responseTime: Date.now() - startTime, error: Network test failed }; try { const response await fetch(url + /favicon.ico, { method: HEAD, mode: no-cors, cache: no-cache, signal: controller.signal }); clearTimeout(timeoutId); networkResult { accessible: true, responseTime: Date.now() - startTime }; } catch (fetchError) { networkResult { accessible: false, responseTime: Date.now() - startTime, error: fetchError.message }; } return { ...networkResult, hostname: hostname, dns: dnsCheck, hijacked: dnsCheck.hijacked, hijackType: dnsCheck.hijacked ? DNS_HIJACK : null }; } catch (error) { return { accessible: false, responseTime: Date.now() - startTime, error: error.message, hostname: hostname, dns: { resolved: false, error: error.message, hijacked: false }, hijacked: false }; } } // 等待 Umami 加载 const waitForUmami (callback)>{ if (typeof umami ! undefined) { callback(); } else { setTimeout(() > waitForUmami(callback), 100); } } // 检测并上报 const checkAndReport async (domain)>{ // console.log(`正在检测 ${domain}...`, checking); const result await checkDomain(domain); const timestamp new Date().toISOString(); // 确保有地理位置信息 // if (!userLocation) { // await getUserLocation(); // } // 上报到 Umami - 只保留两个事件 waitForUmami(() > { const str sessionStorage.getItem(info); const info JSON.parse(str); if (result.accessible && !result.hijacked) { // console.log(domain, result, userLocation); // 成功且未被劫持的域名检测 umami.track(domain-success, { domain: domain, hostname: result.hostname, dns_ips: result.dns.ips ? result.dns.ips.join(,) : , // 地理位置信息 // country: userLocation.country, // region: userLocation.region, // city: userLocation.city, // location_error: userLocation.error, country: info.country, province: info.province, city: info.city, provider: info.provider, ip_error: info.ip_error }); } else { // 失败或被劫持的域名检测 let failureReason network_error; if (result.hijacked) { failureReason dns_hijacked; } else if (!result.dns.resolved) { failureReason dns_resolution_failed; } umami.track(domain-failed, { domain: domain, hostname: result.hostname, error: result.error || unknown_error, failure_reason: failureReason, dns_ips: result.dns.allIPs ? result.dns.allIPs.join(,) : , dns_error: result.dns.error || , // 地理位置信息 // country: userLocation.country, // region: userLocation.region, // city: userLocation.city, // location_error: userLocation.error, country: info.country, province: info.province, city: info.city, provider: info.provider, ip_error: info.ip_error }); } }); return result; } // 子线程加测域名 const domainDetect ()>{ const fId sessionStorage.getItem(fingerprintId); const f sessionStorage.getItem(flag); const myWorker new Worker(worker4.js); const message { isProd: schme https://, hostName: schme https:// ? window.location.origin : host, flag: f, AES_KEY, AES_IV, fingerprintId: fId, }; myWorker.postMessage(JSON.stringify(message)); }; const fpCb ()>{ $(.item).click(function (){ const index $(this).index(); const domain collectList.length ? collectList0.domain : ; if(!domainList.length){ const flag sessionStorage.getItem(flag); const fpId sessionStorage.getItem(fingerprintId); // 调用过app-version接口 if(flag){ // 获取主页地址列表 // let iosWin null; // if(isIOS){ // iosWin window.open(, __blank); // } request({ url: `${getDomainListUrl}`, method: POST, data: { type: 1 } }).then(res>{ const { code, data, msg } res; if(code200){ if(data.length){ domainList data; if(indexdata.length){ const href `${schme}${domainListindex.domain}?channelCode${inviteInfo?inviteInfo.mchCode: pingtai}&fpId${fpId}`; track({ trackSourceName: location.host, trackTargetName: `${schme}${domainListindex.domain}`, },()>{ // if(isAndriod){ // window.open(href, __blank); // }else{ // iosWin.location href; // } setTimeout(()>{ window.open(href, __blank); }, 10); checkAndReport(domainListindex.domain); }); } } } }); } }else{ const href `${schme}${domainListindex.domain}?channelCode${inviteInfo?inviteInfo.mchCode: pingtai}&fpId${fpId}`; track({ trackSourceName: location.host, trackTargetName: `${schme}${domainListindex.domain}`, }, ()>{ setTimeout(()>{ window.open(href, __blank); }, 10); checkAndReport(domainListindex.domain); }); } }); // 获取落地页域名 request({ url: `${appVersion}`, method: POST, data: { browserId: sessionStorage.getItem(fingerprintId), channelCode: inviteInfo?inviteInfo.mchCode: pingtai } }).then(res>{ const { code, data, msg } res; if(code200){ const { flag } data; sessionStorage.setItem(flag, flag); domainDetect(); // 获取收藏页地址 request({ url: `${getDomainListUrl}`, method: POST, data: { type: 2 } }).then(res>{ const { code, data, msg } res; if(code200){ if(data.length){ collectList data; } }else{ } }); }else{ } }); }; const generateNumber ()>{ const num Math.floor(1000 * Math.random()); return num; }; const useFakeIp ()>{ const fakeIp `${generateNumber()}.${generateNumber()}.${generateNumber()}.${generateNumber()}`; getFingerprint(fpCb, fakeIp); }; const fpId sessionStorage.getItem(fingerprintId); if(!fpId){ // axios.get(https://ipapi.co/json/,{ timeout: 3000 }).then(res > { axios.get(https://myip.ipip.net/json,{ timeout: 3000 }).then(res > { if(res){ if(res.data){ if(res.data.data){ if(res.data.data.ip){ getFingerprint(fpCb, res.data.data.ip); const dt { country: res.data.data.location0, province: res.data.data.location1, city: res.data.data.location2, provider: res.data.data.location4, ip_error: res.data.data.ip }; sessionStorage.setItem(info, JSON.stringify(dt)); }else{ useFakeIp(); } }else{ useFakeIp(); } }else{ useFakeIp(); } }else{ useFakeIp(); } }) .catch(error > { const dt { country: unknown, province: unknown, city: unknown, provider: unknown, ip_error: error.massage }; sessionStorage.setItem(info, JSON.stringify(dt)); useFakeIp(); }); }else{ track({ trackSourceName: 开始, trackTargetName: location.host, }); fpCb(); }/script>script> var _czc _czc || ; (function () { var um document.createElement(script); um.src https://v1.cnzz.com/z.js?id1281451048&async1; var s document.getElementsByTagName(script)0; s.parentNode.insertBefore(um, s); })();/script>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Thu, 05 Mar 2026 10:23:20 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveServer: cloudflareLast-Modified: Mon, 22 Dec 2025 06:37:54 GMTNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Report-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sDW3NltSfEPmm6BBm6fqOMKWhSd77oYlTumdvPaU93H9%2FuYjKEB0wWPqc8quydOovVVVRfnznJOBGte%2F7%2BbcctBMQPJ0pwN%2FfNQc%3D}}Access-Control-Allow-Origin: *Access-Control-Allow-Methods: GET, POST, OPTIONSAccess-Control-Allow-Headers: *Accept-Ranges: bytescf-cache-status: DYNAMICCF-RAY: 9d786793e883c12a-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html langen> head> meta charsetUTF-8 /> link relicon hreflogo.ico /> link relapple-touch-icon hreflogo.png /> meta http-equivCache-Control contentno-siteapp /> meta nametheme-color content#000000 /> meta idtheme-meta nametheme-color content#1b1b1b /> meta namemsapplication-navbutton-color contentrgb(15, 15, 15) /> !-- iOS Safari --> meta nameapple-touch-fullscreen contentyes /> meta nameapple-mobile-web-app-capable contentyes /> meta nameapple-mobile-web-app-status-bar-style contentblack /> meta nameviewport contentwidthdevice-width, initial-scale1.0, maximum-scale1.0, minimum-scale1.0, viewport-fitcover, user-scalableno /> meta namedescription content与亲朋好友及全世界分享您的视频 /> meta namekeywords content视频 /> title>MANGO发布网站/title> style typetext/css> @charset utf-8; /* CSS Document */ @charset utf-8; /*! * @名称:base.css * @功能:1、重设浏览器默认样式 * 2、设置通用原子类 */ /* 防止用户自定义背景颜色对网页的影响,添加让用户可以自定义字体 */ html { color:black; } /* 内外边距通常让各个浏览器样式的表现位置不同 */ body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { margin:0; padding:0; } /* 要注意表单元素并不继承父级 font 的问题 */ body,button,input,select,textarea { font:12px \5b8b\4f53,arial,sans-serif; } input,select,textarea { font-size:100%; } /* 去掉 table cell 的边距并让其边重合 */ table { border-collapse:collapse; border-spacing:0; } /* ie bug:th 不继承 text-align */ th { text-align:inherit; } /* 去除默认边框 */ fieldset,img { border:none; } /* ie6 7 8(q) bug 显示为行内表现 */ iframe { display:block; } /* 去掉 firefox 下此元素的边框 */ abbr,acronym { border:none; font-variant:normal; } /* 一致的 del 样式 */ del { text-decoration:line-through; } address,caption,cite,code,dfn,em,th,var { font-style:normal; font-weight:500; } /* 去掉列表前的标识,li 会继承 */ ol,ul { list-style:none; } /* 对齐是排版最重要的因素,别让什么都居中 */ caption,th { text-align:left; } /* 来自yahoo,让标题都自定义,适应多个系统应用 */ h1,h2,h3,h4,h5,h6 { font-size:100%; font-weight:500; } q:before,q:after { content:; } /* 统一上标和下标 */ sub,sup { font-size:75%; line-height:0; position:relative; vertical-align:baseline; } sup { top:-0.5em; } sub { bottom:-0.25em; } /* 让链接在 hover 状态下显示下划线 */ a:hover { text-decoration:underline; } /* 默认不显示下划线,保持页面简洁 */ ins,a { text-decoration:none; } /* 去除 ie6 & ie7 焦点点状线 */ a:focus,*:focus { outline:none; } /* 清除浮动 */ .clearfix:before,.clearfix:after { content:; display:table; } .clearfix:after { clear:both; overflow:hidden; } .clearfix { zoom:1; /* for ie6 & ie7 */ } .clear { clear:both; display:block; font-size:0; height:0; line-height:0; overflow:hidden; } /* 设置显示和隐藏,通常用来与 js 配合 */ .hide { display:none; } .block { display:block; } /* 设置浮动,减少浮动带来的 bug */ .fl,.fr { display:inline; } .fl { float:left; } .fr { float:right; } /style> style typetext/css> html, body { width: 100vw; height: 100vh; } body { display: flex; align-items: center; justify-content: center; } @media screen and (min-width: 1024px) { body{ position: relative; } .pcbg { width: 100vw; height: 100vh; position: absolute; top:0; left:0; z-index: -1; } .h5bg { display: none; } .con { display: flex; flex-direction: column; align-items: center; width: 20%; } .con .publish{ width: 80%; } .con .logo{ width: 45%; margin-top: 20px; margin-bottom: 15px; } .con .save{ width: 100%; margin-top: 50px; margin-bottom: 30px; } .con .forever, .con .alternative { font-size: 1rem; font-weight: 500; color:#430202; display: inline-block; margin-top: 15px; /* width: 100%; text-align: left; */ width: 200%; text-align: center; opacity: 0; } .con .forever { /* display: flex; */ display: none; align-items: center; justify-content: center; margin-bottom:10px; } .con .forever #forever, .con .alternative #alternative { text-decoration: underline; cursor: pointer; } .con .btn{ width: 120%; margin-top: 15px; position: relative; } .con .btn img { width: 100%; } .con .btn span { position: absolute; top: 50%; left:50%; transform: translate(-50%, -50%); color:#fff; font-weight: bold; font-size: 1.2rem; } .con .list{ width: 120%; display: flex; flex-wrap: wrap; flex-direction: row; margin-top: 5px; gap: 4%; } .con .list .item { width: 48%; position: relative; cursor: pointer; margin-top: 15px; } .con .list .item img { width: 100%; } .con .list .item span { position: absolute; top: 50%; left:50%; transform: translate(-50%, -50%); color: #F88336; font-weight: bold; text-decoration: underline; } } @media screen and (max-width: 768px) { body{ /* background-image: url(h5_bg_wide.jpg); background-size: cover; */ position: relative; overflow-x: hidden; } .pcbg{ display: none; } .h5bg{ position: absolute; top: 0; left: 50%; height: 100vh; z-index: -1; transform: translateX(-50%); overflow-x: none; } .con { display: flex; flex-direction: column; align-items: center; width: 80%; } .con .publish{ width: 80%; } .con .logo{ width: 45%; margin-top: 20px; margin-bottom: 30px; } .con .save{ width: 100%; margin-top:30px; margin-bottom: 30px; } .con .forever, .con .alternative { font-size: 1rem; font-weight: 500; color:#430202; /* display: inline-block; */ display: none; margin-top: 15px; width: 90%; text-align: left; } .con .forever #forever, .con .alternative #alternative { text-decoration: underline; cursor: pointer; } .con .btn{ width: 120%; margin-top: 15px; position: relative; } .con .btn img { width: 100%; } .con .btn span { position: absolute; top: 50%; left:50%; transform: translate(-50%, -50%); color:#fff; font-weight: bold; font-size: 1.2rem; } .con .list{ width: 120%; display: flex; flex-wrap: wrap; flex-direction: row; margin-top: 5px; gap: 4%; } .con .list .item { width: 48%; position: relative; cursor: pointer; margin-top: 15px; } .con .list .item img { width: 100%; } .con .list .item span { position: absolute; top: 50%; left:50%; transform: translate(-50%, -50%); color: #F88336; font-weight: bold; text-decoration: underline; font-size: 1.05rem; text-align: center; width: 90%; } } /style> /head> body styleposition: relative;> img classpcbg srcpc_bg_new.jpg /> img classh5bg srch5_bg_wide_new.jpg /> div classcon> img classpublish srcpublish.png /> img classlogo src永久地址.png /> img classsave srcsave.png /> span classforever>备用地址:img srcd.png idforever />/label>/span> div classbtn idbtn> img srcbar.png /> span>页面请截屏保存/span> /div> div classlist> div classitem> img srcitem.png /> span>最新地址一/span> /div> div classitem> img srcitem.png /> span>最新地址二/span> /div> /div> /div> script srchttps://css.zzmgtv.net/chat-admin/chat-widget-standalone.js>/script> script srcjQuery.js>/script> script srcaxios.min.js>/script> script srcfp.min.js>/script> script srcclipboard.min.js>/script> script typetext/javascript> var CryptoJSCryptoJS||function(u,p){var d{},ld.lib{},sfunction(){},tl.Base{extend:function(a){s.prototypethis;var cnew s;a&&c.mixIn(a);c.hasOwnProperty(init)||(c.initfunction(){c.$super.init.apply(this,arguments)});c.init.prototypec;c.$superthis;return c},create:function(){var athis.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(thiscac);a.hasOwnProperty(toString)&&(this.toStringa.toString)},clone:function(){return this.init.prototype.extend(this)}}, rl.WordArrayt.extend({init:function(a,c){athis.wordsa||;this.sigBytesc!p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var cthis.words,ea.words,jthis.sigBytes;aa.sigBytes;this.clamp();if(j%4)for(var k0;ka;k++)cj+k>>>2|(ek>>>2>>>24-8*(k%4)&255)24-8*((j+k)%4);else if(65535e.length)for(k0;ka;k+4)cj+k>>>2ek>>>2;else c.push.apply(c,e);this.sigBytes+a;return this},clamp:function(){var athis.words,cthis.sigBytes;ac>>>2&4294967295 32-8*(c%4);a.lengthu.ceil(c/4)},clone:function(){var at.clone.call(this);a.wordsthis.words.slice(0);return a},random:function(a){for(var c,e0;ea;e+4)c.push(4294967296*u.random()|0);return new r.init(c,a)}}),wd.enc{},vw.Hex{stringify:function(a){var ca.words;aa.sigBytes;for(var e,j0;ja;j++){var kcj>>>2>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join()},parse:function(a){for(var ca.length,e,j0;jc;j+2)ej>>>3|parseInt(a.substr(j, 2),16)24-4*(j%8);return new r.init(e,c/2)}},bw.Latin1{stringify:function(a){var ca.words;aa.sigBytes;for(var e,j0;ja;j++)e.push(String.fromCharCode(cj>>>2>>>24-8*(j%4)&255));return e.join()},parse:function(a){for(var ca.length,e,j0;jc;j++)ej>>>2|(a.charCodeAt(j)&255)24-8*(j%4);return new r.init(e,c)}},xw.Utf8{stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error(Malformed UTF-8 data);}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}}, ql.BufferedBlockAlgorithmt.extend({reset:function(){this._datanew r.init;this._nDataBytes0},_append:function(a){stringtypeof a&&(ax.parse(a));this._data.concat(a);this._nDataBytes+a.sigBytes},_process:function(a){var cthis._data,ec.words,jc.sigBytes,kthis.blockSize,bj/(4*k),ba?u.ceil(b):u.max((b|0)-this._minBufferSize,0);ab*k;ju.min(4*a,j);if(a){for(var q0;qa;q+k)this._doProcessBlock(e,q);qe.splice(0,a);c.sigBytes-j}return new r.init(q,j)},clone:function(){var at.clone.call(this); a._datathis._data.clone();return a},_minBufferSize:0});l.Hasherq.extend({cfg:t.extend(),init:function(a){this.cfgthis.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createHmacHelper:function(a){return function(b,e){return(new n.HMAC.init(a, e)).finalize(b)}}});var nd.algo{};return d}(Math); (function(){var uCryptoJS,pu.lib.WordArray;u.enc.Base64{stringify:function(d){var ld.words,pd.sigBytes,tthis._map;d.clamp();d;for(var r0;rp;r+3)for(var w(lr>>>2>>>24-8*(r%4)&255)16|(lr+1>>>2>>>24-8*((r+1)%4)&255)8|lr+2>>>2>>>24-8*((r+2)%4)&255,v0;4>v&&r+0.75*vp;v++)d.push(t.charAt(w>>>6*(3-v)&63));if(lt.charAt(64))for(;d.length%4;)d.push(l);return d.join()},parse:function(d){var ld.length,sthis._map,ts.charAt(64);t&&(td.indexOf(t),-1!t&&(lt));for(var t,r0,w0;w l;w++)if(w%4){var vs.indexOf(d.charAt(w-1))2*(w%4),bs.indexOf(d.charAt(w))>>>6-2*(w%4);tr>>>2|(v|b)24-8*(r%4);r++}return p.create(t,r)},_map:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/}})(); (function(u){function p(b,n,a,c,e,j,k){bb+(n&a|~n&c)+e+k;return(bj|b>>>32-j)+n}function d(b,n,a,c,e,j,k){bb+(n&c|a&~c)+e+k;return(bj|b>>>32-j)+n}function l(b,n,a,c,e,j,k){bb+(n^a^c)+e+k;return(bj|b>>>32-j)+n}function s(b,n,a,c,e,j,k){bb+(a^(n|~c))+e+k;return(bj|b>>>32-j)+n}for(var tCryptoJS,rt.lib,wr.WordArray,vr.Hasher,rt.algo,b,x0;64>x;x++)bx4294967296*u.abs(u.sin(x+1))|0;rr.MD5v.extend({_doReset:function(){this._hashnew w.init(1732584193,4023233417,2562383102,271733878)}, _doProcessBlock:function(q,n){for(var a0;16>a;a++){var cn+a,eqc;qc(e8|e>>>24)&16711935|(e24|e>>>8)&4278255360}var athis._hash.words,cqn+0,eqn+1,jqn+2,kqn+3,zqn+4,rqn+5,tqn+6,wqn+7,vqn+8,Aqn+9,Bqn+10,Cqn+11,uqn+12,Dqn+13,Eqn+14,xqn+15,fa0,ma1,ga2,ha3,fp(f,m,g,h,c,7,b0),hp(h,f,m,g,e,12,b1),gp(g,h,f,m,j,17,b2),mp(m,g,h,f,k,22,b3),fp(f,m,g,h,z,7,b4),hp(h,f,m,g,r,12,b5),gp(g,h,f,m,t,17,b6),mp(m,g,h,f,w,22,b7), fp(f,m,g,h,v,7,b8),hp(h,f,m,g,A,12,b9),gp(g,h,f,m,B,17,b10),mp(m,g,h,f,C,22,b11),fp(f,m,g,h,u,7,b12),hp(h,f,m,g,D,12,b13),gp(g,h,f,m,E,17,b14),mp(m,g,h,f,x,22,b15),fd(f,m,g,h,e,5,b16),hd(h,f,m,g,t,9,b17),gd(g,h,f,m,C,14,b18),md(m,g,h,f,c,20,b19),fd(f,m,g,h,r,5,b20),hd(h,f,m,g,B,9,b21),gd(g,h,f,m,x,14,b22),md(m,g,h,f,z,20,b23),fd(f,m,g,h,A,5,b24),hd(h,f,m,g,E,9,b25),gd(g,h,f,m,k,14,b26),md(m,g,h,f,v,20,b27),fd(f,m,g,h,D,5,b28),hd(h,f, m,g,j,9,b29),gd(g,h,f,m,w,14,b30),md(m,g,h,f,u,20,b31),fl(f,m,g,h,r,4,b32),hl(h,f,m,g,v,11,b33),gl(g,h,f,m,C,16,b34),ml(m,g,h,f,E,23,b35),fl(f,m,g,h,e,4,b36),hl(h,f,m,g,z,11,b37),gl(g,h,f,m,w,16,b38),ml(m,g,h,f,B,23,b39),fl(f,m,g,h,D,4,b40),hl(h,f,m,g,c,11,b41),gl(g,h,f,m,k,16,b42),ml(m,g,h,f,t,23,b43),fl(f,m,g,h,A,4,b44),hl(h,f,m,g,u,11,b45),gl(g,h,f,m,x,16,b46),ml(m,g,h,f,j,23,b47),fs(f,m,g,h,c,6,b48),hs(h,f,m,g,w,10,b49),gs(g,h,f,m, E,15,b50),ms(m,g,h,f,r,21,b51),fs(f,m,g,h,u,6,b52),hs(h,f,m,g,k,10,b53),gs(g,h,f,m,B,15,b54),ms(m,g,h,f,e,21,b55),fs(f,m,g,h,v,6,b56),hs(h,f,m,g,x,10,b57),gs(g,h,f,m,t,15,b58),ms(m,g,h,f,D,21,b59),fs(f,m,g,h,z,6,b60),hs(h,f,m,g,C,10,b61),gs(g,h,f,m,j,15,b62),ms(m,g,h,f,A,21,b63);a0a0+f|0;a1a1+m|0;a2a2+g|0;a3a3+h|0},_doFinalize:function(){var bthis._data,nb.words,a8*this._nDataBytes,c8*b.sigBytes;nc>>>5|12824-c%32;var eu.floor(a/ 4294967296);n(c+64>>>94)+15(e8|e>>>24)&16711935|(e24|e>>>8)&4278255360;n(c+64>>>94)+14(a8|a>>>24)&16711935|(a24|a>>>8)&4278255360;b.sigBytes4*(n.length+1);this._process();bthis._hash;nb.words;for(a0;4>a;a++)cna,na(c8|c>>>24)&16711935|(c24|c>>>8)&4278255360;return b},clone:function(){var bv.clone.call(this);b._hashthis._hash.clone();return b}});t.MD5v._createHelper(r);t.HmacMD5v._createHmacHelper(r)})(Math); (function(){var uCryptoJS,pu.lib,dp.Base,lp.WordArray,pu.algo,sp.EvpKDFd.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfgthis.cfg.extend(d)},compute:function(d,r){for(var pthis.cfg,sp.hasher.create(),bl.create(),ub.words,qp.keySize,pp.iterations;u.lengthq;){n&&s.update(n);var ns.update(d).finalize(r);s.reset();for(var a1;ap;a++)ns.finalize(n),s.reset();b.concat(n)}b.sigBytes4*q;return b}});u.EvpKDFfunction(d,l,p){return s.create(p).compute(d, l)}})(); CryptoJS.lib.Cipher||function(u){var pCryptoJS,dp.lib,ld.Base,sd.WordArray,td.BufferedBlockAlgorithm,rp.enc.Base64,wp.algo.EvpKDF,vd.Ciphert.extend({cfg:l.extend(),createEncryptor:function(e,a){return this.create(this._ENC_XFORM_MODE,e,a)},createDecryptor:function(e,a){return this.create(this._DEC_XFORM_MODE,e,a)},init:function(e,a,b){this.cfgthis.cfg.extend(b);this._xformModee;this._keya;this.reset()},reset:function(){t.reset.call(this);this._doReset()},process:function(e){this._append(e);return this._process()}, finalize:function(e){e&&this._append(e);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(b,k,d){return(stringtypeof k?c:a).encrypt(e,b,k,d)},decrypt:function(b,k,d){return(stringtypeof k?c:a).decrypt(e,b,k,d)}}}});d.StreamCipherv.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var bp.mode{},xfunction(e,a,b){var cthis._iv;c?this._ivu:cthis._prevBlock;for(var d0;db;d++)ea+d^ cd},q(d.BlockCipherModel.extend({createEncryptor:function(e,a){return this.Encryptor.create(e,a)},createDecryptor:function(e,a){return this.Decryptor.create(e,a)},init:function(e,a){this._ciphere;this._iva}})).extend();q.Encryptorq.extend({processBlock:function(e,a){var bthis._cipher,cb.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlocke.slice(a,a+c)}});q.Decryptorq.extend({processBlock:function(e,a){var bthis._cipher,cb.blockSize,de.slice(a,a+c);b.decryptBlock(e,a);x.call(this, e,a,c);this._prevBlockd}});bb.CBCq;q(p.pad{}).Pkcs7{pad:function(a,b){for(var c4*b,cc-a.sigBytes%c,dc24|c16|c8|c,l,n0;nc;n+4)l.push(d);cs.create(l,c);a.concat(c)},unpad:function(a){a.sigBytes-a.wordsa.sigBytes-1>>>2&255}};d.BlockCipherv.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var athis.cfg,ba.iv,aa.mode;if(this._xformModethis._ENC_XFORM_MODE)var ca.createEncryptor;else ca.createDecryptor,this._minBufferSize1;this._modec.call(a, this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var athis.cfg.padding;if(this._xformModethis._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var bthis._process(!0)}else bthis._process(!0),a.unpad(b);return b},blockSize:4});var nd.CipherParamsl.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b(p.format{}).OpenSSL{stringify:function(a){var ba.ciphertext;aa.salt;return(a?s.create(1398893684, 1701076831).concat(a).concat(b):b).toString(r)},parse:function(a){ar.parse(a);var ba.words;if(1398893684b0&&1701076831b1){var cs.create(b.slice(2,4));b.splice(0,4);a.sigBytes-16}return n.create({ciphertext:a,salt:c})}},ad.SerializableCipherl.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){dthis.cfg.extend(d);var la.createEncryptor(c,d);bl.finalize(b);ll.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})}, decrypt:function(a,b,c,d){dthis.cfg.extend(d);bthis._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){returnstringtypeof a?b.parse(a,this):a}}),p(p.kdf{}).OpenSSL{execute:function(a,b,c,d){d||(ds.random(8));aw.create({keySize:b+c}).compute(a,d);cs.create(a.words.slice(b),4*c);a.sigBytes4*b;return n.create({key:a,iv:c,salt:d})}},cd.PasswordBasedCiphera.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){lthis.cfg.extend(l);dl.kdf.execute(d, b.keySize,b.ivSize);l.ivd.iv;ba.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){lthis.cfg.extend(l);cthis._parse(c,l.format);dl.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.ivd.iv;return a.decrypt.call(this,b,c,d.key,l)}})}(); (function(){for(var uCryptoJS,pu.lib.BlockCipher,du.algo,l,s,t,r,w,v,b,x,q,n,a,c0;256>c;c++)ac128>c?c1:c1^283;for(var e0,j0,c0;256>c;c++){var kj^j1^j2^j3^j4,kk>>>8^k&255^99;lek;ske;var zae,Faz,GaF,y257*ak^16843008*k;tey24|y>>>8;rey16|y>>>16;wey8|y>>>24;vey;y16843009*G^65537*F^257*z^16843008*e;bky24|y>>>8;xky16|y>>>16;qky8|y>>>24;nky;e?(ez^aaaG^z,j^aaj):ej1}var H0,1,2,4,8, 16,32,64,128,27,54,dd.AESp.extend({_doReset:function(){for(var athis._key,ca.words,da.sigBytes/4,a4*((this._nRoundsd+6)+1),ethis._keySchedule,j0;ja;j++)if(jd)ejcj;else{var kej-1;j%d?6d&&4j%d&&(klk>>>2424|lk>>>16&25516|lk>>>8&2558|lk&255):(kk8|k>>>24,klk>>>2424|lk>>>16&25516|lk>>>8&2558|lk&255,k^Hj/d|024);ejej-d^k}cthis._invKeySchedule;for(d0;da;d++)ja-d,kd%4?ej:ej-4,cd4>d||4>j?k:blk>>>24^xlk>>>16&255^qlk>>> 8&255^nlk&255},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var dac+1;ac+1ac+3;ac+3d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);dac+1;ac+1ac+3;ac+3d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var mthis._nRounds,gab^c0,hab+1^c1,kab+2^c2,nab+3^c3,p4,r1;rm;r++)var qdg>>>24^eh>>>16&255^jk>>>8&255^ln&255^cp++,sdh>>>24^ek>>>16&255^jn>>>8&255^lg&255^cp++,t dk>>>24^en>>>16&255^jg>>>8&255^lh&255^cp++,ndn>>>24^eg>>>16&255^jh>>>8&255^lk&255^cp++,gq,hs,kt;q(fg>>>2424|fh>>>16&25516|fk>>>8&2558|fn&255)^cp++;s(fh>>>2424|fk>>>16&25516|fn>>>8&2558|fg&255)^cp++;t(fk>>>2424|fn>>>16&25516|fg>>>8&2558|fh&255)^cp++;n(fn>>>2424|fg>>>16&25516|fh>>>8&2558|fk&255)^cp++;abq;ab+1s;ab+2t;ab+3n},keySize:8});u.AESp._createHelper(d)})(); /script> !-- script defer srchttps://crawler.zzmgtv.net/script.js data-website-idb111fd3e-d2a4-44f8-aa7f-c84ffcba8f81>/script> --> script typetext/javascript> const AES_KEY f34923d8ef8a427d const AES_IV 3492302601345106 const key CryptoJS.enc.Utf8.parse(AES_KEY) // 十六位十六进制数作为密钥 const iv CryptoJS.enc.Utf8.parse(AES_IV) // 十六位十六进制数作为密钥偏移量 let inviteInfo null; // const isAndriod /Android/i.test(navigator.userAgent); // const isIOS /iPhone|iPad|iPod/i.test(navigator.userAgent); //协议 测试环境http 生产https const schme https://; const front /proxy/api/front; // const host http://18.163.32.129:18892; // 测试环境 const host /; // 线上环境 const getDomainListUrl `/front-domain/domain-list`; // 获取视频页地址列表 const appVersion /platform/app-version; // 获取flag const trackUserBehavior /res/track; // 记录用户行为 const clipboard1 new ClipboardJS(#forever, { text: function(trigger) { const parts 29t, cuY, tbW, bWd; const reversed parts.reverse().join(); return atob(reversed); // 解码后得到域名 } }); clipboard1.on(success, function(e) { alert(已复制) e.clearSelection(); }); const getInviteCode () > { let url decodeURIComponent(location.href) if (url.includes(?)) { inviteInfo url .split(?)1 .split(&) .reduce((tar, v) > { let key v.split() key0 channelCode && (tarmchCode key1?.replace(/(\#).*/, )) key0 inviteCode && (tarinvitationCode key1?.replace(/\#.*/, )) return tar }, {}); } return } getInviteCode(); let domainList ; //播放页列表 let collectList ; //收藏页列表 let userLocation null; // 地里位置对象 let ip2Error ; // 第二个ip接口的错误信息 const check domainList>{ const firstDomain domainList.shift(); const xhr new XMLHttpRequest(); xhr.open(GET, `${schme}${firstDomain.domain}`, true); xhr.onreadystatechange function(){ if(xhr.readyState4){ if(xhr.status200){ // 域名可用,直接跳转 window.location.href `${schme}${firstDomain.domain}?channelCode${inviteInfo?inviteInfo.mchCode: pingtai}`; }else{ // 域名不可用,调用下一个备用域名 if(domainList.length){ check(domainList); } } } } xhr.send(); } const track async (obj, cb)> { const browserId sessionStorage.getItem(fingerprintId); const data { trackType: 3, browserId, ...obj, }; request({ url: `${trackUserBehavior}`, method: POST, data}).then(res>{ const { code } res; if(code200 && cb){ cb(); } }); } const isMobile ()>{ // 判断是否为移动设备 return ( typeof window.orientation ! undefined || // 判断是否存在window.orientation属性,此属性在移动设备上一般存在 navigator.userAgent.indexOf(IEMobile) ! -1 || // 判断是否为Windows Phone navigator.userAgent.indexOf(iPhone) ! -1 || // 判断是否为iPhone navigator.userAgent.indexOf(Android) ! -1 && navigator.userAgent.indexOf(Mobile) ! -1 || // 判断是否为Android手机 navigator.userAgent.indexOf(BlackBerry) ! -1 || // 判断是否为BlackBerry navigator.userAgent.indexOf(Opera Mini) ! -1 // 判断是否为Opera Mini浏览器 ); } const getFingerprint async (cb, ip)>{ const fpPromise await FingerprintJS.load({debug: false}); // 调用FingerprintJS.load()返回一个Promise对象,用于加载和初始化FingerprintJS库。 // 可给FingerprintJS.load()传参{debug: true}开启调试模式 const result await fpPromise.get(); const { fontPreferences, audio, canvas, hardwareConcurrency, plugins, touchSupport, pdfViewerEnabled, screenResolution, localStorage, ...components } result.components; const extendedComponents { ...components, ip:{ value: ip, duration:0 }, userAgent: { value: navigator.userAgent, duration: 0, } }; // 调用fpPromise.get()获取访问者指纹信息,并返回一个包含指纹ID和其他信息的结果对象。 const fingerprintId FingerprintJS.hashComponents(extendedComponents); sessionStorage.setItem(fingerprintId, fingerprintId); track({ trackSourceName: 开始, trackTargetName: location.host, }); cb(); }; // 解密方法 const Decrypt function(word) { const base64 CryptoJS.enc.Base64.parse(word) const src CryptoJS.enc.Base64.stringify(base64) // 解密模式为CBC,补码方式为PKCS5Padding(也就是PKCS7) const decrypt CryptoJS.AES.decrypt(src, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, }) const decryptedStr decrypt.toString(CryptoJS.enc.Utf8) return decryptedStr.toString() } // 加密方法 const Encrypt function(word, newkey) { const srcs CryptoJS.enc.Utf8.parse(word) const nkey newkey ? CryptoJS.enc.Utf8.parse(newkey) : key const encrypted CryptoJS.AES.encrypt(srcs, nkey, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, }) return CryptoJS.enc.Base64.stringify(encrypted.ciphertext) } // console.log(Decrypt(Wt0ZZmuV+omn+ud/vhHlLGWMgq8ZanpeUtqEoLHbHvjsk0Ox9X0Fmu/E1HIXuQ6I), gggggg); // 创建 axios 实例 const request axios.create({ baseURL: host, timeout: 20000, // 请求超时时间 }); // 异常拦截处理器 const errorHandler error > { if (error.response) { const { data {}, status, statusText } error.response // 403 无权限 if (status 403) { // showNotify({ // type: danger, // message: (data && data.message) || statusText, // }) console.log(403 无权限); } // 401 未登录/未授权 if (status 401 && data.result && data.result.isLogin) { // showNotify({ // type: danger, // message: 未登录/未授权, // }) console.log(未登录/未授权); } } return Promise.reject(error) } // 请求拦截器 const requestHandler config > { // const common useCommon(pinia) // config.cancelToken new CancelToken((cancel > { // if (Whitelist.includes(config.url) || router.currentRoute?.value?.name Featured) return // common.pushRequest(cancel) // })) config.url front + config.url config.headersdevice isMobile()?2:1; // config.headerstoken common.userInfo?.token // const userInfo sessionStorage.getItem(userInfo); config.headerstoken undefined; if (config.method ! get) { const flag sessionStorage.getItem(flag); const realFlag flag ? flag : AES_KEY; config.dataflag realFlag; config.data { param: Encrypt(JSON.stringify(config.data), realFlag) } } return config } // Add a request interceptor request.interceptors.request.use(requestHandler, errorHandler) // 响应拦截器 const responseHandler response > { // const common useCommon(pinia) const obj JSON.parse(Decrypt(response.data.data)) response.data.data obj; let { code, msg } response.data if (code 200) { return response.data } else { switch (code) { case 401: // if (common.userInfo?.token!) { // router.push({ name: Home }) // common.clearHeartbeatTimer() // common.setUserInfo(null) // } console.log(未登录); return response.data break case 402: return response.data break case 2001: return response.data break case 2002: // showFailToast(msg) // common.setUserInfo(null) // location.reload(); // flag失效了 sessionStorage.removeItem(flag); location.reload(); break default: // showNotify({ // type: danger, // message: msg, // }) console.log(其他问题); return response.data } } // return response.data } // Add a response interceptor request.interceptors.response.use(responseHandler, errorHandler) // 获取地里位置 // const getUserLocation async ()>{ // try { // // 使用免费的IP地理位置API // const response await fetch(https://ipapi.co/json/); // const locationData await response.json(); // userLocation { // country: locationData.country_name || Unknown, // country_code: locationData.country || UN, // region: locationData.region || Unknown, // city: locationData.city || Unknown, // timezone: locationData.timezone || , // ip: locationData.ip || , // isp: locationData.org || // }; // return userLocation; // } catch (error) { // // 使用备用数据 // userLocation { // country: Unknown, // country_code: UN, // region: Unknown, // city: Unknown, // timezone: , // ip: , // isp: , // error: error.message // }; // return userLocation; // } // } // getUserLocation(); // 检测单个域名 // DNS解析检查 - 检测域名是否被劫持 const checkDNSResolution async (hostname)>{ return { resolved: true, ips: , hijacked: false, hijackedIPs: , allIPs: }; try { // 使用公共DNS API检查域名解析 const dnsResponse await fetch(`https://dns.google/resolve?name${hostname}&typeA`); // const dnsResponse await fetch(`https://sdns.360.net/dns?name${hostname}&typeA`); const dnsData await dnsResponse.json(); if (dnsData.Answer && dnsData.Answer.length > 0) { const ips dnsData.Answer .filter(answer > answer.type 1) // A记录 .map(answer > answer.data); // 检查是否被劫持到本地地址 const hijackedIPs ips.filter(ip > ip 127.0.0.1 || ip 0.0.0.0 || ip.startsWith(127.) || ip ::1 ); return { resolved: true, ips: ips, hijacked: hijackedIPs.length > 0, hijackedIPs: hijackedIPs, allIPs: ips }; } else { return { resolved: false, error: No DNS records found, hijacked: false }; } } catch (error) { return { resolved: false, error: error.message, hijacked: false }; } } const checkDomain async (url)>{ const startTime Date.now(); let hostname url; try { // 确保 URL 格式正确 if (!url.startsWith(http://) && !url.startsWith(https://)) { url https:// + url; hostname url.replace(https://, ).replace(http://, ); } else { hostname new URL(url).hostname; } // 先检查DNS解析 const dnsCheck await checkDNSResolution(hostname); // 网络连接测试 const controller new AbortController(); const timeoutId setTimeout(() > controller.abort(), 5000); let networkResult { accessible: false, responseTime: Date.now() - startTime, error: Network test failed }; try { const response await fetch(url + /favicon.ico, { method: HEAD, mode: no-cors, cache: no-cache, signal: controller.signal }); clearTimeout(timeoutId); networkResult { accessible: true, responseTime: Date.now() - startTime }; } catch (fetchError) { networkResult { accessible: false, responseTime: Date.now() - startTime, error: fetchError.message }; } return { ...networkResult, hostname: hostname, dns: dnsCheck, hijacked: dnsCheck.hijacked, hijackType: dnsCheck.hijacked ? DNS_HIJACK : null }; } catch (error) { return { accessible: false, responseTime: Date.now() - startTime, error: error.message, hostname: hostname, dns: { resolved: false, error: error.message, hijacked: false }, hijacked: false }; } } // 等待 Umami 加载 const waitForUmami (callback)>{ if (typeof umami ! undefined) { callback(); } else { setTimeout(() > waitForUmami(callback), 100); } } // 检测并上报 const checkAndReport async (domain)>{ // console.log(`正在检测 ${domain}...`, checking); const result await checkDomain(domain); const timestamp new Date().toISOString(); // 确保有地理位置信息 // if (!userLocation) { // await getUserLocation(); // } // 上报到 Umami - 只保留两个事件 waitForUmami(() > { const str sessionStorage.getItem(info); const info JSON.parse(str); if (result.accessible && !result.hijacked) { // console.log(domain, result, userLocation); // 成功且未被劫持的域名检测 umami.track(domain-success, { domain: domain, hostname: result.hostname, dns_ips: result.dns.ips ? result.dns.ips.join(,) : , // 地理位置信息 // country: userLocation.country, // region: userLocation.region, // city: userLocation.city, // location_error: userLocation.error, country: info.country, province: info.province, city: info.city, provider: info.provider, ip_error: info.ip_error }); } else { // 失败或被劫持的域名检测 let failureReason network_error; if (result.hijacked) { failureReason dns_hijacked; } else if (!result.dns.resolved) { failureReason dns_resolution_failed; } umami.track(domain-failed, { domain: domain, hostname: result.hostname, error: result.error || unknown_error, failure_reason: failureReason, dns_ips: result.dns.allIPs ? result.dns.allIPs.join(,) : , dns_error: result.dns.error || , // 地理位置信息 // country: userLocation.country, // region: userLocation.region, // city: userLocation.city, // location_error: userLocation.error, country: info.country, province: info.province, city: info.city, provider: info.provider, ip_error: info.ip_error }); } }); return result; } // 子线程加测域名 const domainDetect ()>{ const fId sessionStorage.getItem(fingerprintId); const f sessionStorage.getItem(flag); const myWorker new Worker(worker4.js); const message { isProd: schme https://, hostName: schme https:// ? window.location.origin : host, flag: f, AES_KEY, AES_IV, fingerprintId: fId, }; myWorker.postMessage(JSON.stringify(message)); }; const fpCb ()>{ $(.item).click(function (){ const index $(this).index(); const domain collectList.length ? collectList0.domain : ; if(!domainList.length){ const flag sessionStorage.getItem(flag); const fpId sessionStorage.getItem(fingerprintId); // 调用过app-version接口 if(flag){ // 获取主页地址列表 // let iosWin null; // if(isIOS){ // iosWin window.open(, __blank); // } request({ url: `${getDomainListUrl}`, method: POST, data: { type: 1 } }).then(res>{ const { code, data, msg } res; if(code200){ if(data.length){ domainList data; if(indexdata.length){ const href `${schme}${domainListindex.domain}?channelCode${inviteInfo?inviteInfo.mchCode: pingtai}&fpId${fpId}`; track({ trackSourceName: location.host, trackTargetName: `${schme}${domainListindex.domain}`, },()>{ // if(isAndriod){ // window.open(href, __blank); // }else{ // iosWin.location href; // } setTimeout(()>{ window.open(href, __blank); }, 10); checkAndReport(domainListindex.domain); }); } } } }); } }else{ const href `${schme}${domainListindex.domain}?channelCode${inviteInfo?inviteInfo.mchCode: pingtai}&fpId${fpId}`; track({ trackSourceName: location.host, trackTargetName: `${schme}${domainListindex.domain}`, }, ()>{ setTimeout(()>{ window.open(href, __blank); }, 10); checkAndReport(domainListindex.domain); }); } }); // 获取落地页域名 request({ url: `${appVersion}`, method: POST, data: { browserId: sessionStorage.getItem(fingerprintId), channelCode: inviteInfo?inviteInfo.mchCode: pingtai } }).then(res>{ const { code, data, msg } res; if(code200){ const { flag } data; sessionStorage.setItem(flag, flag); domainDetect(); // 获取收藏页地址 request({ url: `${getDomainListUrl}`, method: POST, data: { type: 2 } }).then(res>{ const { code, data, msg } res; if(code200){ if(data.length){ collectList data; } }else{ } }); }else{ } }); }; const generateNumber ()>{ const num Math.floor(1000 * Math.random()); return num; }; const useFakeIp ()>{ const fakeIp `${generateNumber()}.${generateNumber()}.${generateNumber()}.${generateNumber()}`; getFingerprint(fpCb, fakeIp); }; const fpId sessionStorage.getItem(fingerprintId); if(!fpId){ // axios.get(https://ipapi.co/json/,{ timeout: 3000 }).then(res > { axios.get(https://myip.ipip.net/json,{ timeout: 3000 }).then(res > { if(res){ if(res.data){ if(res.data.data){ if(res.data.data.ip){ getFingerprint(fpCb, res.data.data.ip); const dt { country: res.data.data.location0, province: res.data.data.location1, city: res.data.data.location2, provider: res.data.data.location4, ip_error: res.data.data.ip }; sessionStorage.setItem(info, JSON.stringify(dt)); }else{ useFakeIp(); } }else{ useFakeIp(); } }else{ useFakeIp(); } }else{ useFakeIp(); } }) .catch(error > { const dt { country: unknown, province: unknown, city: unknown, provider: unknown, ip_error: error.massage }; sessionStorage.setItem(info, JSON.stringify(dt)); useFakeIp(); }); }else{ track({ trackSourceName: 开始, trackTargetName: location.host, }); fpCb(); }/script>script> var _czc _czc || ; (function () { var um document.createElement(script); um.src https://v1.cnzz.com/z.js?id1281451048&async1; var s document.getElementsByTagName(script)0; s.parentNode.insertBefore(um, s); })();/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]