web-dev-qa-db-ja.com

「allrequestsallowed.com」...ハックの試み?

私の(小さな、個人的な、まったく重要ではない)Webサーバーで多くの試みがありますが、Apacheとfail2banは通常その仕事を正しく行います。しかし、私を心配させるログエントリがあります。

xx.yy.www.zzz - - [9/Jul/2011:12:42:15 +0100] "GET http://allrequestsallowed.com/?PHPSESSID=5gh6ncjh00043YVMWTW_B%5CFAP HTTP/1.1" 200 432 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"

問題は、答えが404コードではなく、200コードだったことです。それは大丈夫ですか?私には奇妙に思えますが、この分野(および他の多くの分野)に関する私の知識は、そっと言うと、限られています。

11
luri

まず、事前に、推定攻撃者が何を達成しようとしているのかわかりません。 PHPスクリプトまたはPHPバージョンがあり、奇妙なセッションID攻撃に対して脆弱である可能性があります。ただし、おそらく心配する必要はありません。

サーバーは期待どおりに動作しました。 200は、Apacheが渡されるURLをどのように解釈するかにより、その特定の状況で予期されるコードです。

最初に、http://allrequestsallowed.comはより一般的な 'Host:'ヘッダー(これはRFCで指定されているとは思わず、他のサーバーがこのように解釈しない可能性があることに注意してください 私は間違っていました。これは、クライアントがそのフォームを使用することはめったにないにもかかわらず、セクション5.1.2のRFC 2616で指定されています。すみません、しばらく前に書いたHTTPサーバーの実装を修正する必要があります...)。

さて、おそらく「allrequestsallowed.com」という名前のサイトはないでしょう。では、Apacheが認識できないホスト名のHost:ヘッダー(または同等のもの)を取得するとどうなりますか?デフォルトとして最初の仮想ホストを選択します。これは、Apacheの明確に定義され、文書化された動作です。そのため、最初の仮想ホスト(または仮想ホストが存在しない場合はメインサーバーの構成)が何であれ、その名前に関係なく引き継ぎます。

これで、指定されたURLの残りの部分は、パス、/、およびGETパラメーター(?PHPSESSID...ビット)の2つの部分で構成されます。

これで、/というパスは、ほとんどすべてのWebサーバーに存在するはずです。ほとんどの場合、index.htmlまたはおそらくindex.phpスクリプトのようなものにマップされますが、もちろんこれはオーバーライドできます。

静的なHTMLファイルにマップする場合、異常なことはまったく起こりません。ファイルのコンテンツが返されます。つまり、パラメーターは単に無視されます。 (特定の高度な設定ディレクティブが設定されていないと仮定すると、ほとんど確実に設定されません。)

一方、それが何らかのスクリプトである場合、そのPHPSESSID変数はスクリプトに渡されます。スクリプトが実際にsesその変数(この特定の場合、PHPの組み込みセッション処理を使用するPHPスクリプトのみがそうである場合)、その動作は内容に依存します。

ただし、おそらく、セッションを使用して/がPHPスクリプトにマッピングされたとしても、目立ったものは何も起こりません。セッションIDはおそらく存在しないため、無視されるか、スクリプトにエラーが表示されます。

まれに、セッションIDが存在する場合、攻撃者は誰か他のセッションをハイジャックする可能性があります。それは悪いことですが、それ自体は実際にはセキュリティホールではありません-攻撃者がセッションID情報を取得した場所であればどこでもホールになります(HTTPSを使用していない場合、ワイヤレスネットワークを探るのが良い候補です)。実際には、元々セッションを行っていたユーザーが実行できなかったことを実行できません。

編集:さらに、SESSIONID内の '%5C'はバックスラッシュ文字にマップされます。これは、Windowsホストでのディレクトリトラバーサル攻撃のテストのようです。

12
Nicholas Knight

すべての駐車場ドメインのAレコードとして使用されているIPで、このallrequestsallowedがログに記録されています。

私の狙いは、このホスト名が、ターゲットホストを指す「攻撃者」のローカルホストファイルと組み合わせて使用​​されることです。

31.44.184.250の実際のWebサーバーは、外部要求を処理するためのものです。

私の意見:全く無害。ホストファイル内の他の偽のドメイン名でできることを除いて、付加価値のある使用法を見ないでください。

1
Kajje