我的个人博客网站再次被恶意镜像,这次手段高明了许多

文章目录

    最近在看个人博客网站的百度统计时,经常看到一个奇怪的域名访问记录。

    • 我自己的域名是 www.sunzhongwei.com
    • 而这个奇怪的域名是 okinm.fun

    我第一反应是,估计又被人做了网站镜像。之前在 2021 年发现过一次,这是当时的记录 📚网站第一次被恶意镜像

    💡 高明的 404 Not Found

    但是,奇怪的是,我访问这个域名,无论是用 http 还是用 https,都是显示 404 错误,即访问的页面不存在。

    为了以防万一,我又去我的服务器上的 Nginx 日志中排查了一下,也没有这个域名的请求记录。

    同时通过 dig 命令查看了这个域名的解析记录,发现是使用了 cloudflare 的代理节点,并没有指向我的阿里云服务器 IP。

    $ dig +trace okinm.fun
    
    okinm.fun.              3600    IN      NS      carmelo.ns.cloudflare.com.
    okinm.fun.              3600    IN      NS      natasha.ns.cloudflare.com.
    
    okinm.fun.              300     IN      A       172.67.180.62
    okinm.fun.              300     IN      A       104.21.35.223
    

    于是,我就大意了,以为只是个通过百度统计的系统漏洞来发小广告的。就没有在意这件事。

    🐛 漏出破绽

    今天早上又看到了这个域名的统计信息,我觉得有点不对了。按理说,这种发小广告的,至少访问过去,是能看到网页,否则费这个劲干啥。

    看着朴素的 404 界面,我突然闪过一个念头,会不会是这家伙把国内的 IP 屏蔽了。。。

    果然,我把 IP 切到了德国的 IP,再次请求这个域名,就看到了我的网站被镜像后的样子。变成了一个繁体中文网站,😅

    网站被镜像成繁体中文

    看来是设置了中国区不可访问。大兄弟,你玩的可是真溜噶!

    补充:

    事后,我又在 v2ex 上看到了遇到了同样 404 现象的博主,这说明,这是一套完整的产业链,或者标准化程序工具,并不是这个小哥的独创。

    🔍 找到对方的服务器 IP

    于是我访问了几个页面,然后在我自己的服务器上,找到了对应的 Nginx 请求日志。例如,虽然访问的是

    https://okinm.fun/net-8-aspnet-core-503-error-nginx

    但实际上看到的请求日志是:

    103.233.11.60 - - [07/Sep/2024:08:29:39 +0800] "GET /net-8-aspnet-core-503-error-nginx HTTP/1.1" 200 30309 "https://www.sunzhongwei.com" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" "-"
    

    怪不得从 nginx 日志中查询不到这个域名,原来 http_referer 依旧是我的域名。

    对方还是花了一点小心思,把 http_user_agent 伪装成了 Google 的搜索爬虫。damn 💣

    但是这个 IP 还是很容易发现问题,103.233.11.60,来自中国–香港 CDN520加速节点(BGP) 数据中心。

    🔨 这周刚写 Nginx IP 统计分析工具终于派上用场

    我用这周为了放松心情,用 ASP.NET Core 写了一个实时查看 Nginx IP 统计结果的小工具

    实时 Nginx IP 统计结果

    可以清晰地看到,这个 IP 昨天的访问量是 935。这个请求量很少,所以没有被识别出来。
    后续还是加上 IP 来源标注比较方便识别。

    ⚡️ 封 IP

    本来想将这个 IP 来源的请求,再 301 重定向到我的域名上,也算物归原主。
    但是,看了下百度统计信息,一个月才十几个访问量,也不值得,干脆直接在阿里云服务器的安全组里把这个 IP ban 掉了。

    再次请求,就会看到这个域名的页面变成了请求超时,然后变成了 404 … 兄弟,你还是太严谨了。

    🐶 域名 whois 信息

    挂一下这个域名的 whois 信息:

    来自天津的 zhang zhen yu

    $ whois okinm.fun
    Domain Name: OKINM.FUN
    Registry Domain ID: D455866518-CNIC
    Registrar WHOIS Server: grs-whois.hichina.com
    Registrar URL:
    Updated Date: 2024-08-29T09:44:39.0Z
    Creation Date: 2024-05-20T03:00:36.0Z
    Registry Expiry Date: 2025-05-20T23:59:59.0Z
    Registrar: Alibaba Cloud Computing Ltd. d/b/a HiChina (www.net.cn)
    Registrar IANA ID: 1599
    Domain Status: ok https://icann.org/epp#ok
    Registrant Organization: zhang zhen yu
    Registrant State/Province: tian jin
    Registrant Country: CN
    

    预防

    非常巧,刚处理完,就发现 v2ex 上,有个博主提出了同样的问题:

    博客被人全文复制,如何找到这个人并请对方停止这种侵权行为

    https://www.v2ex.com/t/1070859

    评论里有个解决方式,挺不错,就是加上 js 检测,判断域名不对,就跳转。

    例如:js 判断当前域名如果不是 www.sunzhongwei.com 则 301 跳转到 https://www.sunzhongwei.com

    // 获取当前页面的 URL
    var currentUrl = window.location.href;
    
    // 获取当前页面的主机名
    var currentHost = window.location.hostname;
    
    // 检查主机名是否为 "www.sunzhongwei.com"
    if (currentHost !== "www.sunzhongwei.com") {
        // 如果不是,则跳转到 https://www.sunzhongwei.com
        window.location.href = "https://www.sunzhongwei.com";
    }
    

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式