Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2013年2月19日
最終更新日:2013年12月26日

telnet で HTTP リクエストを送信する

telnet コマンドを使用すれば、HTTP リクエストを自分で作成して送信することができるようになります。

HTTP リクエストのメソッドには主に以下のものがあります。

GET サーバーのリソースを取得する
POST クライアントのデータを送信する
OPTIONS サポートしているHTTPメソッド等の情報を返す
TRACE リクエストした内容をそのままレスポンスで返す

セキュリティ目的で使用するのは OPTIONS メソッドと TRACE メソッドです。

それは、TRACE メソッドが有効になっているとブラウザの脆弱性やクロスサイト・スクリプティングの脆弱性により、ブラウザのリクエスト内容が攻撃者に取得されてしまうクロスサイト・トレーシングという攻撃が可能になるためです。

最近のブラウザではクロスサイト・トレーシングの脆弱性は解消されつつあり、現在はそれほど気にしなくてもよいレベルになっているようです。しかし、クロスサイト・スクリプティングの脆弱性の保険的な対策としての意味もあり、一般的には TRACE メソッドは無効にします。

では、telnet で HTTP リクエストを送信してみましょう。今回は、CentOS 上の Apache を対象としています。なお、この処理は自分の管理下にあるサーバーにのみ行なってください。

まず、コマンドプロンプトを起動して以下のコマンドを実行します。

telnet サーバー名 ポート番号

今回は HTTP(80) の通信でローカルサーバーが対象になりますので、以下のようになります。

telnet 192.168.11.9 80

すると telnet コマンドが入力待ちになりますので、以下のコマンドを入力して最後に改行を2回行います。コマンドの入力中は画面に文字が表示されませんが、あせらずに入力してください。

OPTIONS / HTTP/1.1
Host: 192.168.11.9

この OPTIONS メソッドのレスポンスは以下のようになりました。

HTTP/1.1 200 OK
Date: Mon, 18 Feb 2013 06:08:03 GMT
Server: Apache
X-Frame-Options: DENY
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 0
Connection: close
Content-Type: httpd/unix-directory

TRACE メソッドが有効になっていることが分かります。

では、今度は TRACE メソッドを実行してみます。

先ほどと同じように telnet コマンドを実行します。

telnet 192.168.11.9 80

そして以下のようにして、TRACE メソッドを実行します。

TRACE / HTTP/1.1
Host: 192.168.11.9

結果は以下のようになりました。TRACE メソッドが問題なく実行され、リクエストの内容も返ってきています。

HTTP/1.1 200 OK
Date: Mon, 18 Feb 2013 06:12:26 GMT
Server: Apache
Connection: close
Transfer-Encoding: chunked
Content-Type: message/http

28
TRACE / HTTP/1.1
Host: 192.168.11.9

0

このようにして telnet コマンドを使用し HTTP リクエストを送信することで、サーバーの状態を調べることができます。自分が管理しているサーバーの状態がどのようになっているか確認してみるとよいかと思います。


スポンサーリンク




カテゴリー:ツール

Twitter でも、いろんな情報を発信しています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA