[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[port139:00737] URLScan の [DenyUrlSequences]



Port139 伊原です。

URLscan を入力文字列のチェックに利用できるだろか?と思いちょこちょこ
調べています。

URLscan では [DenyUrlSequences] という項目でリクエストに含まれてはい
けない文字列を定義できるんですが、デフォルトでは以下のようになってい
ます。

[DenyUrlSequences]
..  ; Don't allow directory traversals
./  ; Don't allow trailing dot on a directory name
\   ; Don't allow backslashes in URL
:   ; Don't allow alternate stream access
%   ; Don't allow escaping after normalization
&   ; Don't allow multiple CGI processes to run on a single request

で、これに < と > を加えてクロスサイト スクリプティング対策で使えない
かなぁとか思い、塩月さんの原稿 http://www.st.rim.or.jp/~shio/w2kworld/iiscss/
を参考にテストしてる最中です。

実際に、URLscan を Windows 2000(IIS 5.0)にインストールし、
[DenyUrlSequences]に < と > を定義。
iisreset を実行後、以下の URL でアクセスを試みたところ URLscan がこの
リクエストを拒否しませんでした。

http://192.168.1.1/greeting.asp?word=%3C

同様に

http://192.168.1.1/greeting.asp?cmd.exe

としても URLscan が拒否しないので、? 以降の文字列をチェック対象にして
いないと思われます。

http://support.microsoft.com/support/kb/articles/q307/6/08.asp

の AllowDotInPath の説明文を見る感じでは、? 以降はチェック対象になら
ないような感じなんですが、これってどなんでしょね...

? 以降も解釈するかしないかを指定できるといいんですけど、ここはやはり
Gurad3 の出番なのかしら :-)



---

Hideaki Ihara <hideaki@xxxxxxxxxxxxx>
Port139 URL: http://www.port139.co.jp/
PGP PUBLIC KEY: http://www.port139.co.jp/pgp/