这个 javascript 文件有什么作用?这是病毒吗?

信息安全 javascript 病毒
2021-08-22 03:27:33

在 Google 上搜索时,我发现一个网站向 Google Bot 显示一组内容,向用户显示另一组内容(通过重定向到新域),以及一个非常可疑的 Javascript 文件。也许它是一个跟踪cookie或病毒/恶意软件,我不知道,所以我在这里问是否有人可以帮助解释代码?

如果网站是“安全的”,为什么它会通过加载这个 .js 文件将搜索引擎重定向到普通网站,而用户会重定向到空白页面?为什么它应该在第二个重定向域上托管一个 getpassword.asp(来自 sucuri 扫描)?

document.write ('<a href="" target="_blank"><img alt="&#x35;&#x31;&#x2E;&#x6C;&#x61;&#x20;&#x4E13;&#x4E1A;&#x3001;&#x514D;&#x8D39;&#x3001;&#x5F3A;&#x5065;&#x7684;&#x8BBF;&#x95EE;&#x7EDF;&#x8BA1;" src="" style="" /></a>\n');
var a1156tf="51la";var a1156pu="";var a1156pf="51la";var a1156su=window.location;var a1156sf=document.referrer;var a1156of="";var a1156op="";var a1156ops=1;var a1156ot=1;var a1156d=new Date();var a1156color="";if (navigator.appName=="Netscape"){a1156color=screen.pixelDepth;} else {a1156color=screen.colorDepth;}
try{a1156tf=top.document.referrer;}catch(e){}
try{a1156pu =window.parent.location;}catch(e){}
try{a1156pf=window.parent.document.referrer;}catch(e){}
try{a1156ops=document.cookie.match(new RegExp("(^| )a1156_pages=([^;]*)(;|$)"));a1156ops=(a1156ops==null)?1: (parseInt(unescape((a1156ops)[2]))+1);var a1156oe =new Date();a1156oe.setTime(a1156oe.getTime()+60*60*1000);document.cookie="a1156_pages="+a1156ops+ ";path=/;expires="+a1156oe.toGMTString();a1156ot=document.cookie.match(new RegExp("(^| )a1156_times=([^;]*)(;|$)"));if(a1156ot==null){a1156ot=1;}else{a1156ot=parseInt(unescape((a1156ot)[2])); a1156ot=(a1156ops==1)?(a1156ot+1):(a1156ot);}a1156oe.setTime(a1156oe.getTime()+365*24*60*60*1000);document.cookie="a1156_times="+a1156ot+";path=/;expires="+a1156oe.toGMTString();}catch(e){}
try{if(document.cookie==""){a1156ops=-1;a1156ot=-1;}}catch(e){}
a1156of=a1156sf;if(a1156pf!=="51la"){a1156of=a1156pf;}if(a1156tf!=="51la"){a1156of=a1156tf;}a1156op=a1156pu;try{lainframe}catch(e){a1156op=a1156su;}
a1156src='(0-a1156d.getTimezoneOffset()/60)+'&tcolor='+a1156color+'&sSize='+screen.width+','+screen.height+'&referrer='+escape(a1156of)+'&vpage='+escape(a1156op)+'&vvtime='+a1156d.getTime();
setTimeout('a1156img = new Image;a1156img.src=a1156src;',0);
4个回答

让我们清理一下并更仔细地查看它,我还用它们的文本等效替换了一些 HTML 实体:

向页面添加链接图像,汉字被编码但我认为这并不可疑:

document.write('<a href="http://www.51.la/?17211156" target="_blank"><img alt="51.la 专业、免费、强健的访问统计" src="http://icon.ajiang.net/icon_8.gif" style="border:none" /></a>\n');

初始化一堆变量,主要是关于浏览器和页面的属性,比如HTTP的referrer和当前的URL、日期、浏览器分辨率等。

var a1156tf = "51la";
var a1156pu = "";
var a1156pf = "51la";
var a1156su = window.location;
var a1156sf = document.referrer;
var a1156of = "";
var a1156op = "";
var a1156ops = 1;
var a1156ot = 1;
var a1156d = new Date();
var a1156color = "";
if (navigator.appName == "Netscape") {
    a1156color = screen.pixelDepth;
} else {
    a1156color = screen.colorDepth;
}
try {
    a1156tf = top.document.referrer;
} catch (e) {}
try {
    a1156pu = window.parent.location;
} catch (e) {}
try {
    a1156pf = window.parent.document.referrer;
} catch (e) {}
try {

似乎正在寻找此应用程序设置的任何现有 cookie,以记录已访问的页面数。该值递增并存储在 cookie 中。

    a1156ops = document.cookie.match(new RegExp("(^| )a1156_pages=([^;]*)(;|$)"));
    a1156ops = (a1156ops == null) ? 1 : (parseInt(unescape((a1156ops)[2])) + 1);
    var a1156oe = new Date();
    a1156oe.setTime(a1156oe.getTime() + 60 * 60 * 1000);
    document.cookie = "a1156_pages=" + a1156ops + ";path=/;expires=" + a1156oe.toGMTString();

它基本上似乎是在尝试记录您查看过多少不同的页面。它再次使用 cookie 来帮助记住您是否已经访问过。

    a1156ot = document.cookie.match(new RegExp("(^| )a1156_times=([^;]*)(;|$)"));
    if (a1156ot == null) {
        a1156ot = 1;
    } else {
        a1156ot = parseInt(unescape((a1156ot)[2]));
        a1156ot = (a1156ops == 1) ? (a1156ot + 1) : (a1156ot);
    }
    a1156oe.setTime(a1156oe.getTime() + 365 * 24 * 60 * 60 * 1000);
    document.cookie = "a1156_times=" + a1156ot + ";path=/;expires=" + a1156oe.toGMTString();

杂项,可能只是为了迎合不同的浏览器功能和设置,例如禁用 cookie。

} catch (e) {}
try {
    if (document.cookie == "") {
        a1156ops = -1;
        a1156ot = -1;
    }
} catch (e) {}
a1156of = a1156sf;
if (a1156pf !== "51la") {
    a1156of = a1156pf;
}
if (a1156tf !== "51la") {
    a1156of = a1156tf;
}
a1156op = a1156pu;
try {
    lainframe
} catch (e) {
    a1156op = a1156su;
}

将所有这些信息作为 GET 参数写入图像的源属性中。您的浏览器将加载它,然后他们的服务器可以记录数据。

a1156src = 'http://web.51.la:82/go.asp?svid=8&id=17211156&tpages=' + a1156ops + '&ttimes=' + a1156ot + '&tzone=' + (0 - a1156d.getTimezoneOffset() / 60) + '&tcolor=' + a1156color + '&sSize=' + screen.width + ',' + screen.height + '&referrer=' + escape(a1156of) + '&vpage=' + escape(a1156op) + '&vvtime=' + a1156d.getTime();
setTimeout('a1156img = new Image;a1156img.src=a1156src;', 0);

基本上它在跟踪你,包括你正在查看的页面,你查看了多少次网站,你查看了多少页面,你的浏览器分辨率是多少等等。

根据具体情况,这可能是恶意的,尽管大多数网站都运行某种形式的跟踪,例如谷歌分析。作为查看站点的人,它不会对您的机器的完整性构成威胁,但它可能会对您的隐私构成威胁。

奇怪的变量名确实让它看起来像是被混淆的恶意软件,但我怀疑这是为了避免与其他 JavaScript 的变量命名冲突。

不,它看起来不像病毒,但绝对像是试图跟踪您在不同网站上的访问。

基本上,它会收集有关您的浏览器、一些 cookie 以及您来自哪个页面的大量信息,并将所有这些作为参数放入它从服务器加载的图像的 URL 中。然后,该服务器可以使用相同的代码将您访问此站点和其他站点的信息汇总到用户配置文件中,该配置文件可能会用于向您展示有针对性的广告。

所以这出现在我为某人建立的网站上。这是我可以看到的症状(我不是程序员)。

该软件安装在专门用于重定向谷歌蜘蛛机器人的网站上,以获取大量实际上不在目标网站上的内容。在游戏中,您会看到网站的访问量显着增加,但看不到实际的好处。这些人正在做的是告诉谷歌网站上的内容比实际要多得多。当有人从谷歌搜索中点击这些虚假链接之一时,他们会被重定向到在合法网站上销售商品的页面。

正在发生的事情是,这些人是销售商品的网站的附属机构,他们从每次在线销售中获得佣金。

他们是寄生虫,利用他人的数千个网站为自己赚钱。

我在我们的环境中遇到了同样的警报,所以我很好奇是什么产生了这种流量。当您考虑它时,您的浏览器中需要安装一些恶意软件作为插件或类似的东西,因为我可以清楚地看到带有此 URL 的 Google 搜索结果。

例子:

web.51.la:82/go.asp?svid=8&id=15942596&tpages=1&ttimes=1&tzone=8&tcolor=24&sSize=1440,900&referrer=https://www.google.de/&vpage=http://www.qupingche.com/comment/show/103&vvtime=1409818963602

当您访问该页面http://www.qupingche.com/comment/show/103时,这是一个中文网站,我 100% 确定您没有访问过。在其页面上,您可以看到web51.la此脚本中的内容:

<script language="javascript" type="text/javascript" src="http://js.users.51.la/15942596.js">
</script>

当您检查 JavaScript 的变量时,它会每 10 秒将请求的位置增加一个。

这是我看到的:

js.users.51.la/15942596.js

这是最新的,内容相同:

js.users.51.la/15994950.js

因此,当您看到来自客户端的此请求时,您的计算机上需要有一些恶意软件生成此请求!