Webアプリセキュリティ検査ツール
現在作成中の検査ツールでは、XSS用モジュール、OSコマンドインジェクション用モジュール、その他インジェクション及びDirectory Traversal用モジュールを作ってみた。
検出の仕組みは簡単には以下のような感じ。
その他インジェクション及びDirectory Traversal用モジュール
対策がなされていなければ、必ずSQLエラーなどのシステムエラーが発生するデータ(例えば「'」)と、そのデータを含むけれど、エラーが発生しないようなデータ(例えば「' or 'a'='b」)を投げてみて、そのレスポンスの構造の違い(とりあえず、HTMLタグが同じかどうかを確認)で判断。対策がされていれば、両方ともエラーか、両方とも正常な結果を表示するはず。つまり、構造的には同じものが返ってくると思う。
多分、エラーと通常のレスポンスはHTMLのタグ構造が異なるはずだから、検出できるかなぁと思うのですよ。ちなみに商用検査ツールではこういったロジックでは検出してないっぽい。
とまあ、やっと出来そうな目処がついてきたので、ちょっと公開w
追記:
Blind SQL injectionを検査手法として取り入れない理由は、商用ツールであるからってのもあるけれど、検索での脆弱性は見つかられても、追加とか、Stored Procedureとかでの検出が難しそうってのもあるデスよ(というのは後付理由w。実際は思いつかなかっただけw。まあ、組み込んでもいいけど、気が向いたらやるということでw)
HTML Parser
http://htmlparser.sourceforge.net/
くそっ、こんなのあったのかorz
もうちょっとじっくり調べればよかった。これ使うように修正するかなぁ?