情報処理試験でNUL文字攻撃の問題など
2006年4月17日(月曜日)
情報処理試験でNUL文字攻撃の問題など
更新: 2006年4月20日
スラッシュドットに「情報処理試験(2006年春)はどうでしたか (slashdot.jp)」というトピックができていますね。今回、「テクニカルエンジニア(情報セキュリティ)」という試験区分が新たに追加されたとのこと。
「情報処理技術者試験センター:問題冊子・配点割合・解答例 (www.jitec.jp)」として問題が公開されているので見てみましたが、ディレクトリトラバーサルやSQLインジェクションの攻撃手法を答えさせるものがあったりして、なかなか興味深いです。
個人的に印象深かったのは、拡張子指定を迂回する話ですね。Perl スクリプトで、外部から与えられた $fname という名前に対して '.cep' という文字列を連結してから open に渡しています。$fname は何もサニタイズされていませんが、プログラム内で '.cep' という固定の文字列が連結されてから open に渡りますので、これを書いた人は「拡張子 .cep のファイルにしかアクセスできない」と思っているわけです。そこで「任意のファイルにアクセスする方法を答えよ」というのが問題になります。
まあ、単にファイル名の後ろに NUL文字をつけるだけなのですが、この手法、意外に知られていないように思います。以前、私が社内向けのセミナーで紹介したことがあるのですが、普段から Perl のプログラムを書いていて、XSSなどは知り尽くしているような人にも「初耳」と言われたりしましたので……。
※Perl の open は NUL を含むファイル名を渡されると NUL 以降を無視します。クエリに index.html%00 などと指定すると index.html(NUL).cep という文字列が open に渡ることになりますが、index.html.cep ではなく index.html が開かれます。
※2006-04-20追記: もう少し正確に言うと、Perl は NUL を含むファイル名をそのまま OS に渡すので、結果として NUL 以降が無視されます。Perl が一律に文字列の NUL 以降を無視しているわけではないので注意が必要です。詳しくはコメント欄を参照してください (PANDA さんありがとうございます)。
ところで話は変わりますが、こんなご意見が。
まあIPAが「XSS=クッキー漏洩」としか考えていないことは、脆弱性届け出状況 [ipa.go.jp]とかを見ても明らかなのだがorz
それはあるいは私のせいかも。届出様式には「5) 脆弱性により発生しうる脅威」という項目があって、これは届出者が書いていますので。
- 「情報処理試験でNUL文字攻撃の問題など」へのコメント (11件)
関連する話題: セキュリティ
- 前(古い): cssText修正の余波?
- 次(新しい): IPAX2006 受賞者プレゼン枠