水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > 情報処理試験でNUL文字攻撃の問題など

情報処理試験で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) 脆弱性により発生しうる脅威」という項目があって、これは届出者が書いていますので。

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

人気のページ

最近の日記

関わった本など

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

その他サイト