
htcapは、AjaxコールとDOMの変更をインターセプトすることでシングルページアプリケーション(SPA)を再帰的にクロールできるWebアプリケーションスキャナーです。
htcapは、シングルページアプリケーション(SPA)を再帰的にクロールし、AjaxコールやDOMの変更をインターセプトできるWebアプリケーションスキャナです。
Htcapは、単なる別の脆弱性スキャナではありません。クローリングプロセスに重点を置き、Ajax/Fetchコール、WebSocket、JSONPなどを検出してインターセプトすることを目的としています。独自のファザーに加えて、一連の外部ツールを使用して脆弱性を発見し、現代のWebアプリケーションの手動および自動ペネトレーションテストの両方に対応するように設計されています。
また、60行未満のPythonでカスタムファザーを迅速に開発できる、小規模ながら強力なフレームワークも備えています。 ファザーはGET/POSTデータ、XMLおよびJSONペイロードで動作し、POSTとGETを切り替えることができます。もちろん、ファザーはマルチスレッド環境で並行して実行されます。
これは、PhantomJSの代わりにヘッドレスChromeを使用する初めてのリリースです。 HtcapのJavaScriptクローリングエンジンは、EcmaScriptの新しいasync/await機能を活用するために書き直され、Puppeteer上に構築されたNode.jsモジュールに変換されました。
詳細はこちらをご覧ください。
以下の動画は、htcapがGmailをクローリングしている様子を示しています。 クロールは数時間続き、約3000のXHRリクエストがキャプチャされました。
必要なものをインストールし、以下を実行します。
$ git clone https://github.com/fcavallarin/htcap.git htcap
$ htcap/htcap.py
Dockerをインストールし、以下を実行します。
$ git clone https://github.com/fcavallarin/htcap.git htcap
$ cd htcap
$ docker build -t htcap --build-arg HTCAP_VERSION=master . # master を目的のhtcapコミットハッシュまたはブランチに置き換えてください
$ mkdir -p htcap-out && docker run -v "$(pwd)/htcap-out/":/out/ --rm --name htcap htcap
$ docker exec -it htcap bash
$ htcap # Dockerコンテナ内でhtcapを使用できるようになりました
Dockerコンテナ内からDockerホスト上でリッスンしているサービスにアクセスするには、ホスト名 host.docker.internal を使用します。
host.docker.internal のIPを取得するには、Dockerコンテナ内で以下のコマンドを実行します。
getent hosts host.docker.internal | awk '{print $1;}'
ドキュメント、例、デモはこちらにあります。
このプログラムはフリーソフトウェアです。フリーソフトウェア財団によって公開されたGNU General Public Licenseの条項に基づき、再頒布および/または変更することができます。ライセンスはバージョン2、または(お客様の選択により)それ以降のバージョンが適用されます。