近期,笔者维护的一个网站负责人找到了我,说近期网站有不少页面被服务商提醒有恶意内容,让我帮忙排查原因。

一开始怀疑是网站的系统漏洞导致被入侵,防火墙、登录记录都查了个遍,无果,代码也没有在近期被修改过的迹象。
只好逐句分析网页源文件,挨个查找外部的js引用链接。最终锁定了bshare这个插件。
从网上一搜,这个插件果然“爆雷”了!
攻击代码分析
根据搜索到的资料,这是一个非常典型的域名过期抢注型供应链攻击(Domain Expiration Hijacking)。攻击者在域名正常过期后将其重新注册,在自有服务器上托管恶意 JS 文件,无需入侵任何目标服务器,即可控制所有加载该 JS 的网页。

经过分析js代码,发现攻击者设计了一套精细的触发策略:
- 北京时间精准判定:使用
Intl.DateTimeFormat获取北京时间小时值,而非客户端本地时间; - 夜间全量:19:00至次日06:00,触发概率极高(管理员大概率离线);
- 日间抽样:06:00至19:00,随机触发(降低暴露风险,减少投诉);
- Cookie 限频:同一浏览器12小时内最多触发一次,避免连续跳转引起用户警觉;
- 最终指向:
https://20sj.******.cn?bs(为确保安全,已将跳转网址屏蔽)

处置方案
- 全站排查外部引用
搜索页面源码中所有 <script src="..."> 标签,排查以下几类高风险组件:
- bshare / bdshare 分享插件
- jiathis 等已停止维护的社交分享组件
- 第三方 CDN 引入的 jQuery、Bootstrap 等库的冷门镜像域名
- 移除或替换
对于确认不受控的外部 JS 引用,直接删除对应标签,或将其替换为本地托管的静态文件。由于 bShare 官方域名已被劫持,需尽快移除 bShare,建议更换为其他社交分享组件或自行开发。
- 启用 SRI 完整性校验
对确需跨域引用的第三方资源,必须在引用标签中添加 Subresource Integrity (SRI) 属性,确保浏览器仅加载执行与预期哈希匹配的脚本。
<script src="..." integrity="sha384-xxxx" crossorigin="anonymous">
</script>- 清理缓存与搜索引擎快照
立即刷新全站CDN缓存,通过搜索引擎站长平台提交清理或更新请求,移除已被污染的搜索结果快照。
- 网络侧封禁恶意域名和IP
iptables -A INPUT -s 172.247.228.218 -j DROP``echo"127.0.0.1 www.bshare.cn" >> /etc/hosts
IOCs:www.bshare.cn, *.fnitcyv.cn, *.tpkuraw.cn, daohang.2023200.com, 172.247.228.218后记
可怕的是:国内大约有1.5万个网站引用了这套bshare组件,覆盖党政机关、教育、科研、新闻媒体、医疗、金融、能源、工业等重点行业。
看来这种第三方的插件,确实是不能随意引用,尤其对于一些“小厂”的域名,确实要用的话,要么就下载到本地,要么就定期检查链接可靠性,务必小心提防!
评论