Hatena::ブログ(Diary)

seezoo-cms開発日誌 Twitter

2011-06-02

w3afでアプリケーション脆弱性診断してみる

「w3af」というツールの1.0がリリースされたらしいので、早速試してみました。

w3afとは、

w3afは、Webアプリケーションの攻撃および監査フレームワークです。w3afのコア部分やプラグインPythonで実装されています。SQLインジェクションのチェックやクロスサイトスクリプティング(XSS)、ローカル/リモートファイルインクルージョンなどを含めた130以上のプラグインが提供されています。

w3af プロジェクト日本語トップページ - SourceForge.JP

ということらしいです。ふむふむ。英語わかんないですが、試してみましょう。


ダウンロードインストール

公式サイトのダウンロードページにbz2のパッケージがあるのでダウンロードWindows用にバイナリのパッケージもあるみたいですよ。

パッケージを展開すると、「w3af_console」と「w3af_gui」があります。せっかくだから、GUIツールの方でやってみます。

環境は、Ubuntu10.04です。

とりあえず実行権限をつけて起動すると、色々パッケージが足りないと言われたので、その通りにインストール


$ sudo apt-get install nltk SOAPpy libxml2 pysvn scapy


再度起動すると、


You have to install graphviz library.


ライブラリが足りないみたいです。インストール


$ sudo apt-get install graphviz


再度起動すると、スプラッシュが出ました。


f:id:seezoo-cms:20110602122515p:image:w360



テストしてみる

続いて、GUIウインドウが出てきたので、左上のボタンからウィザードに従って入力。

今回はshort wizard、ローカルにあるLAMPP環境でテストしてみます。


f:id:seezoo-cms:20110602122517p:image:w360



といっても、URLOS、検証する言語を選択、最後にプロファイル名を入れれば準備完了。



f:id:seezoo-cms:20110602123443p:image


あとはチェック項目をONにしてとりあえず、Run。

どれがどの項目なのか分からないので、「audit」、「grep」、「mangle」あたりにチェックを入れました。

(discovery)にチェックを入れると、「すっごい時間かかるかもよ!」というダイアログが出たのでやめました)

お試し用のスクリプトはこんな感じ。



<html>
  <head>
  </head>
  <body>
  <div>
    <?php echo @$_GET['id'];?>
  </div>
  </body>
</html>


良い子は真似しちゃダメなコードです。

で、スタートすると、結果や情報がログにダーッと出て、終了後に「Results」のタブから結果が確認できます。

簡単なスクリプトならいいですが、それなりなアプリケーションを検証すると、かなりマシンパワーを使う感じです。

あと、エラーが出ちゃう場合はそこで止まってくれるので、エラー検出にも使えそうな印象です。

結果を見ると、あれ、、、XSS脆弱性の指摘がされないですね。オプションのチェック項目が悪いのかもしれませんね。

でもちゃんとDirectoryIndexできちゃうよ、とかの警告はしてくれました。

あとxstの警告が出まくったので、設定を修正したりしました><


実際にリクエストするコードを吐き出せる

w3afの面白い所は、まずい箇所があったときに実際にリクエストを送るコードをhtml, Ruby, Pythonなどのいろんなフォーマットで吐き出せる所だと思います。

それを保存して、実際にリクエストを送ったりできますし、w3af上でリクエストヘッダを変えながら検証したりできるみたいです。


感想

もうちょっと使い込んでみたいと思います。あと英語も勉強しないといけないですね。

seezooで試したら30分くらいガリガリ回って、エラーはありませんでした。オプションの設定次第かもしれませんが・・・。

トラックバック - http://d.hatena.ne.jp/seezoo-cms/20110602/1306985390