TORIPIYO DIARY

recent events, IoT, programming, security topics

検索時に突然表示されるラッキービジター系フィッシングサイトの仕組み

たまに、Google検索すると出てくる以下のようなフィッシング広告サイト、こんなフィッシングサイトが表示されたら気分が滅入ってしまいますね😰一体このサイトはどうやって表示されるのか、気になったので調べてみました🧐

f:id:ha107chan:20200920124728p:plain
こんな感じのフィッシングサイト

調べてみると、手法は割と単純です。要は、リクエストヘッダーのReferer情報を見て、ラッキービジター用のiframeを挿入するかしないかを決めているようです。

以下のように、Referer: https://www.google.com/ を設定してリクエストを投げると、

(ホストとパスの情報は、このブログを見てアクセスする人がないように一応隠しています。)
GET /xxxxxxxxx.php HTTP/1.1
Host: xxxxxxxxxxxxx
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:75.0) Gecko/20100101 Firefox/75.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.google.com/
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1

以下のように、htmlコードの中に、iframe設定が加えられてレスポンスが返ってきました。この、frame中の、xxxxx.htmlのところに、ラッキービジターのhtmlファイルがあるようです。

<style>
        html, body, iframe {
            margin: 0;
            padding: 0;
            height : 100%;
        }
        iframe {
            display: block;
            width: 100%;
            border: none;
        }
</style>
     <script>
document.write('<iframe width="100%" height="1000" src="/xxxxx.html">');
</script>

iframe設定の箇所のコードは、リクエスト内にRefererの設定が無い場合は省かれるようになっていました。また、Referer: https://www.apple.com/などと設定しても表示されないので、特定のRefererの値の時だけiframeのコードを返しているようです。なぜRefererの値によってiframeの有無を分けているのか、もしかしたら検索エンジンからのアクセスではiframeを見せないようにしてSEOランキングを下げられないようにしているのかもしれません。

他にも、以下のサイトの記事のように、ラッキービジターのフィッシングサイトを表示するやり方はあるようですが、今回遭遇したものは、Refererの情報を見て、iframeを出し分けているものでした。

www.daj.jp

いかがでしたか?今回は、ラッキビジターのフィッシングサイトはどうやって表示されるのか、その仕組みを調べてみたので紹介いたしました 😊 この記事が気に入ったいただけたようでしたら、是非、はてなスターボタンを押してくださいね⭐️それでは皆さん、フィッシングサイトには引っかからないように快適なインターネットライフをお過ごしください🥰