blog個人的な技術ブログです。SAPネタを充実したい。https://twitter.com/matsukawarこの広告は、90日以上更新していないブログに表示しています。(18日目)久しぶりに日記を書きます。今日は、ASP系のアドベントカレンダーに書きたかった内容なんですが、セキュリティに絡んだ内容ですので脆弱性アドベントカレンダーに初投稿です。簡単に自己紹介→「.Net系開発者です。TFSとTestManager好きです。」-まず、ASPXのサイトを見つけて、フォームの入力値(検索フォーム)とかに「&#」(いずれも小文字)と入力してみたことはあるでしょうか?結構多くののサイトでサーバーエラーが発生します。初期設定で、クライアントはこの「&#」(以降、”呪文”と呼びます)をサーバーにPOSTすることが許可されていないためです。以下、私がサクッと試して発見したサイト呪文を入力して「検索」と押すと、サーバーエラーになりますよね。ハンビットステーション※FAQ検索画面http://www.hanbitstation.jp/supportNet/FaqView.aspx?cdFaq=601&Code=112&Category=1SDガンダムオンライン※ログインメールアドレスが呪文、パスは適当http://www.sdgundamcfo.jp/netcafe/tenpo_map.aspx?weeeple=1つまり、サーバーエラーが発生するサイトはこの呪文のチェックをASPの初期設定で行っていると考えられ、この呪文の入力テストを行っていない可能性があるといえます。ログイン画面で落ちるのはどうかと思いますが...システム全体で見ても、この呪文のような特殊文字の入力を想定してない可能性がありますので、攻撃者の1つのツールとして目をつけられることは必至でしょう。aspxでこの呪文を制御できていない場合の問題点としては、どのようなケースが考えられるのでしょうか?たとえば、攻撃者がフォームの一部に、この呪文を仕込んだとしましょう。これでは、フォームに入力した内容を誰もポストバックできなくなってしまいます。厄介なのは、マスター系のデータをこの呪文に変えられたときだと思います。落ちないようにするためには、ASPの設定(Web.configの設定など)で、この標準のValidation機能をOFFにする必要があります。Validation機能をOFFにする必要があります。えっ・・・つまり、呪文を入力しても落ちなかったサイトは標準のValidation機能をOFFにして、自分たちで独自実装してる可能性があるのです。抜けがもしかしたらあるかもしれない、ということです。ユーザーに見えているフォーム内の各種フィールドは、ちゃんと値チェックなど入っているかもしれませんが、ユーザーに隠ぺいされている各種Hiddenフィールドなどが、攻撃ルートとしては狙いやすいのではないかと思います。そのHiddenフィールドにSQLインジェクションなどを入力されたときにちゃんとはじけるかどうか、というテストが十分になされていない可能性があるためです。なっている各種フィールドをdisplay:blockに書き換えるだけで、簡単に表示されますので、いろんなサイトで実験はできそうです。いうHiddenの値をDBに直接値を入れてたりしたら、最悪ですね。自他ともに気を付けていきたいものです。»プロフィールid:matsukawarとりあえず、ダイアリーからお引越し中です。構築するTFSの作業項目のカスタマイズは簡単にできます月別アーカイブはてなブログをはじめよう!matsukawarさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。