最近,我在我的服务器上托管的所有网站的所有页面的标题中发现了一些额外的代码。显然我没有把它放在自己身上。从我看到的是一些广告相关的骗局(注射可能)。我的问题是这有多危险?我怎么读它呢?然后我该怎样防止这种情况再次发生?我需要帮助并就此提出建议。谢谢。
有问题的代码:和:
<!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()
}();
答案 0 :(得分:2)
从目前为止发布的内容来看,它似乎相当无害。既然你说它实际上不在源文件中,但只有当你在浏览器中查看源代码时,我会说它是由浏览器中的广告拦截器插件添加的。尝试使用其他浏览器访问该页面 - 如果您当前正在使用FireFox,请尝试在IE中打开该页面并通过该浏览器查看源代码。可能有问题的脚本不会出现在另一个浏览器中。
现在,当我说'无害&#39;时,它可能是一个有用的插件。但是,如果你不记得最近安装任何东西,我会浏览我的插件列表并尝试确定添加此脚本的内容。它目前可能没有害处,但如果它是在你不知情的情况下安装的东西,它可能是某种攻击。如果它是您不想安装的东西,我会找到一种方法来在您确定添加此脚本的插件后将其删除。
如果您没有安装任何插件,但是当使用HTTPS访问相同的站点并且注入的代码不再存在时,可能的问题是它是由您的ISP注入的。通过HTTPS而不是HTTP访问网站,从服务器到客户端加密站点,防止任何内容被篡改。你用什么ISP?要禁用此功能,您应该直接与您的ISP联系,并请求尽可能为您的帐户停用。
答案 1 :(得分:2)
我也注意到这一点,得出的结论是gmiley和Nita在原始问题的评论中达成了一致。它是Digicel Papua New Guinea添加到非https页面的代码。
特立尼达和多巴哥的服务已记录here,因此我假设Digicel PNG正在做类似的事情。但是选择退出代码在PNG中并不适用于我。
答案 2 :(得分:1)
服务器上没有发生这种情况。脚本和css阻止广告。该脚本正在您的浏览器中注入,或者您正在使用MITMed。如果您没有安装广告拦截器,则意味着您的计算机已遭到入侵。
旧答案:
这很危险。第四行隐藏了广告。第五行从亚马逊ec2实例下载脚本。该脚本无法再下载,因此我们无法告诉您它的作用。你不知道黑客还做了什么。将您的服务器视为已泄露。
https://serverfault.com/questions/218005/how-do-i-deal-with-a-compromised-server#218011
答案 3 :(得分:1)
我刚刚在我的几个托管不同托管服务提供商的网站上发现了同样的事情,但我也注意到这只会在连接到某些网络时发生。
例如,如果我连接到一个提供商提供的家庭网络,我没有看到这些代码段注入页面,但是如果我创建一个移动热点并连接到那个,那么浏览我操作的各个站点我确实看到了代码。
我的结论是注入此代码是ISP系统的一部分,该系统将此代码作为某种广告拦截方案的一部分注入。