Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

arachniのやり方

More than 1 year has passed since last update.

arachniについて

http://www.arachni-scanner.com/

インストール

ダウンロードして解凍するだけです。

実行環境の準備

  • 数時間はほったらかしにする必要がありますので。独立した環境でやったほうがいいです。
  • メール送信されないようにmailhogみたいにするか、プログラムを修正してください。
  • Laravelなどフレームワークのデバッグモードをoffにしてください。
  • やればわかりますが、フォームの選択肢が多かったり、ページ数が多いとその分時間がかかります。マスタデータや記事データなどを減らしてください。1〜2個で十分です。
  • 外部サイトへの接続をしないようにしてください。proxy用でfile_get_contentsしている部分など

実行

コマンドラインもしくは、WebUIから起動します。
コマンドラインが簡単です。
コマンドオプションについては以下
https://github.com/Arachni/arachni/wiki/Command-line-user-interface

基本

bin/arachni https://example.com/
URLを指定するだけです。
localhostでは動きませんので、IPや適当なドメインで動くようにしてください。

推奨オプション

デフォルトではいろいろと無駄なチェックが走りますので、下記のオプションを付けると良いです。
bin/arachni https://example.com/ --scope-exclude-pattern=tel: --scope-exclude-pattern=mailto: --platforms=linux,mysql,php,apache

指定URLだけチェック

--scope-include-pattern=campaigns
を使う

同時接続数の調整

--http-request-concurrency=5
テスト環境のスペックが低い場合は同時接続数を調整しないと途中でテストサイトが落ちる可能性があります。
また、Wordpressの場合重いので同時接続数を3くらいにしたほうが良いです。

ログインが必要なページのチェック

例:
bin/arachni https://example.com/ --plugin=autologin:url=https://example.com/users/login,parameters="id=xxxx&password=xxxx",check="ログアウト" --scope-exclude-pattern=logout
説明:
- --plugin=autologin
autologinプラグインを使います。
- :url=https://example.com/users/login
ログインページ(ID・PW入力フォームがあるページ)のURL
- ,parameters="id=xxxx&password=xxxx"
IDとパスワード
- ,check="ログアウト"
ログインが成功した後の確認用文字列。ログイン後のページにしかない文字列を指定するとそれがあるかどうかでログインできたかを判断します。
- --scope-exclude-pattern=logout
ログアウトしないようにログアウトリンクURLを除外しましょう。

※cakephpでうまくログインできない場合がありました。その場合はプログラムを修正してログイン状態にするなどしてください。(正確に言うとログインしてもすぐセッションが切れてログアウトしてしまう状態になった。)

実行を中断する場合

フォアグラウンドの場合、普通にCtrl+cで終了できます。その際にそこまでのレポートも作成されます。
バックグラウンドの場合、普通にkillするとレポートが作成されないので、
kill -INT 8341
オプションを付けてください。

おすすめの流れ

  • まずはxssだけチェックしてみます。 bin/arachni https://example.com/ --scope-exclude-pattern=tel: --scope-exclude-pattern=mailto: --platforms=linux,mysql,php,apache --checks=xss
  • サイト規模にもよりますが、2〜3時間で終わるようなら全体チェックをしても大丈夫です。xssを除外する場合は --checks=*,-xss
  • いつまでたっても終わらない場合は途中で止めてレポートのSitemapを確認してください。1回で全部のページをやろうとせずに、複数回に分けてやったりしてください。
aat00000
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away