web-dev-qa-db-ja.com

このJavaScriptファイルは何をしますか?これはウイルスですか?

Googleで検索したところ、Google Botとユーザーに(新しいドメインにリダイレクトすることで)あるコンテンツセットを表示するWebサイトと、非常に疑わしいJavaScriptファイルが見つかりました。たぶんそれは追跡Cookieかウイルス/マルウェアなのか、わかりません。誰かがコードの説明を手伝ってくれるかどうかをここで尋ねています。

サイトが「安全」である場合、なぜこの.jsファイルをロードして検索エンジンを通常のWebサイトにリダイレクトし、ユーザーを空白ページにリダイレクトするのですか? (sucuriスキャンから)2番目にリダイレクトされたドメインでgetpassword.aspをホストする必要があるのはなぜですか?

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);
15

これをクリーンアップしてさらに詳しく見てみましょう。一部の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リファラーや現在の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();

その他のもの、おそらくブラウザの機能や設定の違いに対応するためのものです。

} 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);

基本的には、表示しているページ、サイトを表示した回数、表示したページ数、ブラウザの解像度などを含めて、ユーザーを追跡します。

これはcould状況に応じて悪質ですが、ほとんどのWebサイトはGoogle Analyticsなどの何らかのフォームの追跡を実行しています。これは、誰かがサイトを閲覧しているときにマシンの整合性を脅かすことはありませんが、プライバシーを脅かす可能性があります。

奇妙な変数名は難読化されたマルウェアのように見えますが、これは他のJavaScriptとの変数名の競合を避けるためだと思います。

41
thexacre

いいえ、それはウイルスのようには見えませんが、間違いなく、さまざまなサイトにわたる訪問を追跡する試みのようです。

基本的に、それはあなたのブラウザ、いくつかのクッキー、そしてあなたがどこから来たのかに関するたくさんの情報を収集し、そしてこれら全てをパラメータとしてサーバーからロードする画像のURLに入れます。そのサーバーは、同じコードを使用して、このサイトや他のサイトへのアクセスからこの情報をユーザープロファイルに集約できます。ユーザープロファイルは、ターゲット広告を表示するためにおそらく使用されます。

12

だから、これは私が誰かのために作ったサイトに現れました。これは私が症候的に見ることができるものです(私はプログラマーではありません)。

このソフトウェアは、具体的にはGoogleスパイダーボットをリダイレクトして、ターゲットサイトに実際にはない大量のコンテンツを取得するためにサイトにインストールされます。プレイ中は、ウェブサイトへのトラフィックが大幅に増加しますが、実際にメリットはありません。これらの人がやっていることは、ウェブサイトには実際よりもはるかに多くのコンテンツがあることをグーグルに伝えることです。誰かがグーグル検索からこれらの偽のリンクの1つをクリックすると、合法的なサイトで商品を販売するページにリダイレクトされます。

何が起こっているのかというと、これらの人たちは商品を販売しているサイトの関連会社であり、彼らはそれぞれのオンライン販売からコミッションを受け取っています。

彼らは自分自身のためにお金を稼ぐために他の何千もの人々のサイトを利用する寄生虫です。

0
jimdellvic