web-dev-qa-db-ja.com

Facebookワームは正確にどのように機能しますか?

私は当初、FBの友人がアプリを無邪気に受け入れて特権を与えたために悪意のあるリンクを拡散していると考えていましたが、そうではないと言います。交換を見る:

Friend: "あなたが私から得たリンクをクリックしないでください!それは感染しています!(name redacted)!!!すみません!******を止めなきゃ!」
Me: "FBアプリケーションに同意しました。アカ​​ウント->プライバシー設定->アプリとWebサイトに移動し、問題のあるアプリケーションの承認を解除するだけです。だから私はFBアプリをしないでください。」
Friend:アプリではありません。リストにない...それはワームです

それはどのように機能しますか?ユーザーがリンクをクリックするとJavaScriptが悲惨になりますか?

27
JCCyC

はい、まさにJavaScriptです。私はそのようなワームに出会い、それを解読しようとしました。

実際の問​​題とは:

最近のFacebookワームは、ユーザーをページにアクセスさせることで機能し、JavaScriptバーコードをアドレスバーに挿入して実行します。

DO N'T EVER JavaScriptコードをアドレスバーにコピーします。それが主な問題です。信頼できないリンクをクリックしないでください。または、少なくともプライバシーモード(Firefox)またはシークレットモード(Chrome)を使用して、Facebookセッションにアクセスできないようにします。


私たちのハッカーは、人々が何をしているのかを認識させないために何をしましたか?

スクリプトのエスケープ

URLバーにコピーした文字列は、実行される別のJavaScriptにリンクしています。このスクリプトは実際にはエンティティにデコードされます。そのため、文字列文字を使用する代わりに、スクリプト全体を文字列に入れてエスケープし、人間が最初に読めないようにしました。

たとえば、非常に悪意のある機能があった場合、私はそれをエスケープし、ユーザーには次のものだけが表示されます。

function%20test%28%29%20%7B%20alert%20%28%22LOL%22%29%3B%20%7D

エスケープされない

function test(){alert( "LOL"); }

したがって、スクリプトは実行される前に「自分自身」のエスケープを解除します。

難読化

今ではitいものになっています:エスケープする前に、_____xのような関数名とaLDIWEJのような変数で邪悪なJavaScriptコードが難読化されています。これはJavaScriptにとって依然として意味がありますが、人間にはまったく読めません。これも、Facebookハッカーの意図を隠すために行われます。

この時点で、コードは次のようになります。

enter image description here

スクリプトの機能

このスクリプトは、現在のFacebookセッションを取得します。サイトにログインしているため、あなたの名前で何でもできます。たとえば、FacebookのAPIを介してできることは次のとおりです。

  • "OMG私は誰が私に忍び寄ったかを見ることができます!"
  • 人とおしゃべり
  • ステータス更新の投稿
  • 等.

これはすべて、Facebook APIページの一部(いくつかのPHPページを呼び出すことで起こりますが、どれを忘れましたか)。

31
slhck

要するに...それはウイルスです...他のように。自分自身を複製するために使用する方法は、他の誰かのページから実行された後、アカウントに投稿することです。使用しているブラウザやオペレーティングシステム、およびその脆弱性に応じて、何でも可能です。基本的に、スクリプトがブラウザー内で実行されると(単純なクリックから開始できます)、キャッシュされた資格情報を使用してページに投稿します...これには、最初にクリックしたのと同じ/同様のリンクが含まれます。

Javascript/flash /を無効にする(facebookで必要とされる)こと以外では、そのようなエクスプロイトから身を守ることはできません。

他の投稿のリンクをクリックする前に、手っ取り早い回避策を...それがどこに向かっているかを見てください。ハッシュマーク(「#」)で終わるリンクや、何らかのJavaScriptリファレンスを含むリンクを避けたり、実際のリンクを持たないようにしてください。 (つまり、どのURLにもアクセスしていないようです)

または、あなたはいつも私のアプローチを取ることができます...そして、facebook/Twitter/etc ...を完全に避けてください。価値や重要性を割り当てるサービスについては、まだ何も見つけていません。友人や家族は、電子メールを送信する方法を知っています。 (価値があるものに対する私の意見)

5
TheCompWiz