水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > GET /../

GET /../

2008年11月15日(土曜日)

GET /../

公開: 2017年9月23日2時0分頃

yamagataさんのところから、「セルフチェック かんたん5 (プロアクティブ・ディフェンス) (yamagata.int21h.jp)」。

ふつうのブラウザから「../」入りのリクエストはできないはず、というお話ですね。

ブラウザを使わずに無理矢理送ることは可能ですが、IIS + ASP.NET の場合にはサーバ側で「../」を消化するような処理をされてしまうので、アプリケーションが「../」を含むURLを受け取ることはないようです。たとえば、

GET /foo/bar/../

を無理矢理送ったとき、アプリケーション側で Request.Url を見ても

/foo/

がリクエストされたようにしか見えません。bar/../ は最初から無かったことになります。では、

GET /../

のようにして外に出ようとするとどうなるかというと、IIS6はこんな感じのレスポンスを返します。

HTTP/1.1 403 Forbidden
Content-Type: text/html
Date: Sat, 15 Nov 2008 05:07:36 GMT
Connection: close
Content-Length: 32

<h1>Forbidden (Invalid URL)</h1>

うっ、やる気がまったく感じられない……。charsetパラメータも無いのが気になりますが、固定の値しか吐いていないのでたぶん大丈夫でしょう。IIS7だとこんな感じになりますね。

HTTP/1.1 403 Forbidden
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Sat, 15 Nov 2008 05:06:36 GMT
Connection: close
Content-Length: 312

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Forbidden</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Forbidden URL</h2>
<hr><p>HTTP Error 403. The request URL is forbidden.</p>
</BODY></HTML>

charsetパラメータが気になりますが、固定の値しか吐いていないのでたぶん大丈夫でしょう。

いずれにしても、アプリケーションが受け取る前にはたき落とされてしまいます。

関連する話題: Web / セキュリティ / IIS

人気のページ

最近の日記

関わった本など

デザイニングWebアクセシビリティ - アクセシブルな設計やコンテンツ制作のアプローチコーディングWebアクセシビリティ - WAI-ARIAで実現するマルチデバイス環境のWebアプリケーション体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践ウェブの仕事力が上がる標準ガイドブック 5 WebプログラミングWeb Site Expert #13Dreamweaver プロフェッショナル・スタイル [CS3対応] (Style for professional)

その他サイト