Website Redirection Analysis」より
October 2,2007

 米ウェブセンスのセキュリティ・ラボでWebサイトを分析してみると,ソースコードでリダイレクトが使用されたものを数多く見かける。リダイレクトは単にリンク先Webサイトを指定するだけに過ぎない。ただし,実運用上は別のWebサイトに移動させる手段として利用されていて,Webサイトの訪問者を予期せぬ場所へ誘導したり,Webページのスキャン・チェックを回避するために用いられる場合がある。

 あるWebページのHTMLソースコードに「<META HTTP-EQUIV="REFRESH" content="0" url=http://www.example.com">」というコードを挿入しておけば,このWebページを開いたとき別のWebサイト「www.example.com」にリダイレクトできる。この中の「content="0"」は,待ち時間なし(0秒)でリダイレクトすることを意味する。

 リダイレクトの方法はJavaScriptやPHP,ASPなどスクリプトの種類によって異なる。ここでは,PHPとJavaScriptの簡単なリダイレクト方法を取り上げる。

■PHPの場合
(1)Header("Location: http://www.example.com");
(2)echo "<script>window.location=\"http://www.example.com\"; </script>";

■JavaScriptの場合
(1)Location.replace("http://www.example.com")
(2)Window.location=http://www.example.com
(3)Location.href=http://www.example.com

 以下はHTMLソースコードでの簡単な使用例である。もちろんこれが唯一のやり方というわけではなく,これ以外にもさまざまな方法がある。

<html><head>
<script language="javascript">
function jump(){ window.location = "http://www.example.com" }
</script></head>
<body onLoad="setTimeout(&'jump()&',4000)">
<h2>Wait for redirect</h2>
</body></html>

 この例では,Webサイト訪問者はWebページを表示してから4秒(4000ミリ秒)後に「www.example.com」へリダイレクトされる。

 ここでリダイレクト悪用による実際のフィッシング事例を取り上げる。まず,コマンド「wget」を使用してソース・ファイルを取得する。


写真1 コマンド「wget」を利用した,フィッシングのソース・ファイルの取得
[画像のクリックで拡大表示]

 ソースコードを見ると,「location=http://www.example.com」という単純なリダイレクトにより,実際のフィッシング・サイトに転送されることが確認できる。


写真2 リダイレクトを利用した,フィッシング・サイトへの転送
[画像のクリックで拡大表示]

 PHPやJavaScriptを利用したこれらの例以外にも,リダイレクトに関する情報をインターネットで見つけることができる。

 次に,リダイレクトの変わった例を取り上げる。

(1)http://rds.yahoo.com/S=44831148:D1/CS=44831148/SS=44831166/SIG=11v8331g7/*http://www.example.com

 このURLを見ると「yahoo.com」につながると思うかもしれないが,実際は「http://www.example.com」につながる。不思議な現象だ。「www.sina.com.cn」を転送先として,LANアナライザ・ソフト「Ethereal」でパケットを取得し,何が起きているか見てみよう。


写真3 LANアナライザ・ソフト「Ethereal」のパケット解析画面
[画像のクリックで拡大表示]

 ご覧の通り,パケットの流れの中に赤枠で囲った「HTTP/1.1 302 Found (text/html)」がある。RFC-2616では,「http/1.1 302」は「要求されたソースは,一時的に別のURIに属する」ことを意味する。この部分の詳細を確認すると,別のURIが浮かび上がってくる。


写真4 「HTTP/1.1 302」の詳細画面
[画像のクリックで拡大表示]

 この詳細部分を確認することで,リンクの転送先が分かるようになっている。

(2)「www.aol.com/redir.adp?_url=http://www.example.com」または「http://www.aol.com/%72%65%64%69%72%2E%61%64%70?%5F%75%72%6C=http://www.example.com」の場合

 これらのURLは,いずれも「www.example.com」が転送先に指定されている。

(3)「http://cgi1.ebay.com/aw-cgi/ebayISAPI.dll?RedirectEnter&loc=http://us.ebayobjects.com/2c;47586106;12593038;l?http://www.example.com」の場合

 (3)の場合も最終的に「http://www.example.com」にリダイレクトされる。最初の二つの例と異なるのは,302によるリダイレクトを2回用いている点だ。まずhttp://us.ebayobjects.com/2c;47586106;12593038;l?http://www.example.comにリダイレクトし,さらにこの転送先で再びリダイレクトを実行し,Webサイト訪問者を最終的に「http://www.example.com」に送り込む。

 過去のブログ記事では,上記の(2)および(3)を利用した,フィッシング・サイトへのリダイレクトの例を取り上げている。現在,リダイレクトを悪用したフィッシングは常態化しつつあり,注意を払う必要がある。


Copyrights (C) 2007 Websense, Inc. All rights reserved.
本記事の内容執筆時点のものであり,含まれている情報やリンクの正確性,完全性,妥当性について保証するものではありません。

◆この記事は,ウェブセンスの許可を得て,米国のセキュリティ・ラボの研究員が執筆するブログWebsense Security Labs Blogの記事を抜粋して日本語化したものです。オリジナルの記事は,Website Redirection Analysisでお読みいただけます。