所有页面上的 header 中的可疑 javascript(同一服务器上的多个网站)

Suspicious javascript in the header on all pages (mulitiple website on the same server)

最近我在我服务器上托管的所有网站的所有页面的 headers 中发现了一些额外的代码。显然我没有把它放在自己身上。据我所知,是一些与广告相关的骗局(可能是注入)。我的问题是那有多危险?我如何阅读它?然后我该如何防止这种情况不再发生?我需要帮助和建议。谢谢。

有问题的代码:和:

<!DOCTYPE html>
<html lang="en-US">
<head>
<style>[class*="adsbygoogle"],[id*="google_ads"],[id^="gpt-unit"],div[id^="div-gpt-ad-"],img[src*="doubleclick.net"],img[src*="googlesyndication"],ins[id^="aswift_"] { display:none!important; }</style>
<script src=http://54.171.234.214/x2xmv9hn.js type='text/javascript'></script>
<meta charset="UTF-8">

以及x2xmv9hn.js

的内容
! function() {
    "use strict";

    function a() {}
    try {
        var b = window.addEventListener ? "addEventListener" : "attachEvent",
            c = window[b],
            d = function() {
                function a(a) {
                    d(a.target, e, !0)
                }

                function b(a) {
                    d(a.target, e, !1)
                }

                function c() {
                    document.addEventListener("error", a, !0), document.addEventListener("load", b, !0)
                }

                function d(a, b, c) {
                    if (a) {
                        var d = a.tagName.toLowerCase(),
                            e = b[d];
                        if (void 0 !== e) {
                            var f = a[e];
                            if ("string" == typeof f && "" !== f && 0 === f.lastIndexOf("http", 0))
                                if (c) a.style.hasOwnProperty("display") && a.setAttribute("data-adblock-preserve-display-value", a.style.display), a.style.setProperty("display", "none", "important");
                                else {
                                    var g = "";
                                    a.hasAttribute("data-adblock-preserve-display-value") && (g = a.getAttribute("data-adblock-preserve-display-value"), a.style.setProperty("display", g, ""))
                                }
                        }
                    }
                }
                var e = {
                    img: "src",
                    input: "src",
                    object: "data"
                };
                return {
                    startEventListener: c
                }
            }();
        ! function() {
            var a = "attachEvent" == b ? "onmessage" : "message";
            c(a, function(a) {
                if ("lachsom" === a.data) {
                    for (var b = document.getElementsByTagName("iframe"), c = 0, d = b.length; d > c; c++) {
                        var e = b[c];
                        e && e.contentWindow && e.contentWindow === a.source && e.setAttribute("style", "display:none !important")
                    }
                    a.stopPropagation(), a.stopImmediatePropagation()
                }
            }, !1)
        }(), document.addEventListener("DOMContentLoaded", a, !1)
    } catch (e) {
        return !1
    }
    d.startEventListener()
}();

服务器上没有发生这种情况。脚本和 css 屏蔽广告。脚本被注入到您的浏览器中,或者您正在被 MITMed。如果您没有安装广告拦截器,则表示您的计算机已被入侵。

旧答案:

这很危险。第四行隐藏广告。第五行从 amazon ec2 实例下载脚本。该脚本无法再下载,因此我们无法告诉您它做了什么。你不知道黑客还做了什么。将您的服务器视为受到威胁。

https://serverfault.com/questions/218005/how-do-i-deal-with-a-compromised-server#218011

从你目前发布的内容来看,它似乎是相当无害的。既然你说它实际上不在源文件中,但只有当你在浏览器中查看源代码时,我会说它是由浏览器中的广告拦截器插件添加的。尝试使用不同的浏览器访问该页面 - 如果您当前使用的是 FireFox,请尝试在 IE 中打开该页面并通过该浏览器查看源代码。有问题的脚本可能不会出现在替代浏览器中。

现在,当我说 'innocuous' 时,它可能是一个有用的插件。但是,如果您不记得最近安装过任何东西,我会查看我的插件列表并尝试确定是什么添加了这个脚本。目前它可能无害,但如果它是在您不知情的情况下安装的,则可能是某种攻击。如果它是您不想安装的东西,一旦您确定是什么插件添加了这个脚本,我会想办法将其删除。

如果您没有安装任何插件,但是当使用 HTTPS 访问相同的站点并且注入的代码不再存在时,可能的问题是它是由您的 ISP 注入的。通过 HTTPS 而不是 HTTP 访问网站,从服务器到客户端加密网站,防止任何东西篡改内容。您使用什么 ISP?要禁用此功能,您应该直接联系您的 ISP 并请求尽可能为您的帐户禁用它。

我也注意到了这一点,并得出了与 gmiley 和 Nita 在对原始问题的评论中得出的相同结论。这是 Digicel 巴布亚新几内亚添加到非 https 页面的代码。

特立尼达和多巴哥的服务已记录 here,因此我认为 Digicel PNG 正在做类似的事情。不过,选择退出代码在 PNG 中对我不起作用。

我刚刚在我的几个由不同托管服务提供商托管的网站上注意到同样的事情,但是我也注意到只有连接到某些网络时才会发生这种情况。

例如,如果我连接到一个提供商提供的家庭网络,我没有看到这些代码段被注入页面,但是如果我创建一个移动热点并连接到该热点,然后浏览我操作的各种网站请务必查看代码。

我的结论是,此代码的注入是 ISP 系统的一部分,该系统将此代码作为某种广告拦截方案的一部分注入。