Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
crawlergo — Web脆弱性スキャナ向けの強力なブラウザクローラー | Kitploit
ツール/GitHubGitHub/qianlitp/crawlergo
偵察脆弱性スキャナー情報収集ウェブセキュリティクローラー
GitHubqianlitp/crawlergo

crawlergo

Web脆弱性スキャナ向けの強力なブラウザクローラー

リポジトリを見る
3.0k4931年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

crawlergo

chromedp BlackHat EU Arsenal

ウェブ脆弱性スキャナーのための強力なブラウザクローラー

英語ドキュメント | 中文文档

crawlergo は、chrome headless モードを使用して URL を収集するブラウザクローラーです。DOM レンダリング段階でウェブページ全体のキーポジションをフックし、自動的にフォームを埋めて送信し、インテリジェントな JS イベントトリガーにより、ウェブサイトが公開するエントリを可能な限り収集します。内蔵の URL 重複排除モジュールは、多数の疑似静的 URL をフィルタリングしながらも、大規模なウェブサイトに対して高速な解析・クロール速度を維持し、最終的に高品質なリクエスト結果のコレクションを取得します。

crawlergo は現在、以下の機能をサポートしています:

  • Chrome ブラウザ環境のレンダリング
  • インテリジェントなフォーム入力、自動送信
  • 全 DOM イベントの収集と自動トリガー
  • スマートな URL 重複排除によるほとんどの重複リクエストの除去
  • ウェブページのインテリジェント解析と URL 収集(JavaScript ファイル内容、ページコメント、robots.txt ファイル、一般的なパスの自動ファジングを含む)
  • Host バインディングのサポート、Referer の自動修正・追加
  • ブラウザリクエストプロキシのサポート
  • 結果を受動的ウェブ脆弱性スキャナーにプッシュする機能

スクリーンショット

インストール

インストール・使用前に 免責事項 をよくお読みになり、確認してください。

ビルド

  • 現在のプラットフォーム向けコンパイル
root@kitploit:~
make build
  • 全プラットフォーム向けコンパイル
root@kitploit:~
make build_all
  1. crawlergo は実行に Chrome 環境のみを必要とします。新しいバージョンの Chromium を ダウンロード してください。
  2. 最新バージョンの crawlergo を ダウンロードページ から入手し、任意のディレクトリに展開します。Linux または macOS の場合は、crawlergo に 実行権限 (+x) を付与してください。
  3. または、コードを修正して自分でビルドすることもできます。

Linux システムを使用していて、Chrome が依存関係の欠如を警告する場合は、以下の TroubleShooting を参照してください。

クイックスタート

実行!

Chromium のインストールディレクトリが /tmp/chromium/ であると仮定し、10 個のタブを同時に開いて testphp.vulnweb.com をクロールします:

root@kitploit:~
bin/crawlergo -c /tmp/chromium/chrome -t 10 http://testphp.vulnweb.com/

Docker の使用

頭を使わずに Docker で使用することもできます:

root@kitploit:~
git clone https://github.com/Qianlitp/crawlergo
docker build . -t crawlergo
docker run crawlergo http://testphp.vulnweb.com/

プロキシの使用

root@kitploit:~
bin/crawlergo -c /tmp/chromium/chrome -t 10 --request-proxy socks5://127.0.0.1:7891 http://testphp.vulnweb.com/

Python で crawlergo を呼び出す

デフォルトでは、crawlergo は結果を直接画面に出力します。次に出力モードを json に設定し、Python を使用して呼び出すサンプルコードを以下に示します:

root@kitploit:~
#!/usr/bin/python3
# coding: utf-8

import simplejson
import subprocess


def main():
    target = "http://testphp.vulnweb.com/"
    cmd = ["bin/crawlergo", "-c", "/tmp/chromium/chrome", "-o", "json", target]
    rsp = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    output, error = rsp.communicate()
	#  "--[Mission Complete]--"  はタスク終了の区切り文字列です
    result = simplejson.loads(output.decode().split("--[Mission Complete]--")[1])
    req_list = result["req_list"]
    print(req_list[0])


if __name__ == '__main__':
    main()

クロール結果

出力モードが json に設定されている場合、JSON デシリアライズ後の返却結果には以下の 4 つの部分が含まれます:

  • all_req_list:このクロールタスク中に見つかったすべてのリクエスト。他のドメインからのあらゆるリソースタイプを含みます。
  • req_list:このクロールタスクの 現在のドメインの結果 を返します。疑似静的 URL は重複排除され、静的リソースリンクは含まれません。all_req_list のサブセットです。
  • all_domain_list:見つかったすべてのドメインのリスト。
  • sub_domain_list:見つかったサブドメインのリスト。

使用例

crawlergo は完全なリクエストと URL を返すため、さまざまな方法で使用できます:

  • 他の受動的ウェブ脆弱性スキャナーとの連携

    まず、受動的スキャナーを起動し、リスニングアドレスを http://127.0.0.1:1234/ に設定します。

    次に、crawlergo がスキャナーと同じマシン上にあると仮定し、crawlergo を起動してパラメータを設定します:

    --push-to-proxy http://127.0.0.1:1234/

  • Host バインディング(高バージョンの Chrome では使用不可) (例)

  • カスタム Cookie (例)

  • crawlergo によって生成されたゾンビプロセスの定期的なクリーンアップ (例) 、@ring04h 氏による寄稿

ヘッドレス検出のバイパス

crawlergo はデフォルトでヘッドレスモード検出をバイパスできます。

https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html

トラブルシューティング

  • 'Fetch.enable' が見つからない

    Fetch は新しいバージョンの Chrome でサポートされている機能です。このエラーが発生した場合、バージョンが低すぎることを意味しますので、Chrome のバージョンをアップグレードしてください。

  • Chrome の実行時に xxx.so などの依存関係が不足している

    root@kitploit:~
    // Ubuntu
    apt-get install -yq --no-install-recommends \
         libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
         libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
         libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libgbm1 \
         libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 libnss3
         
    // CentOS 7
    sudo yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 \
         libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 \
         ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y
    
    sudo yum update nss -y
    
  • 実行時に Navigation timeout と表示される / ブラウザが見つからない / 正しい ブラウザの実行可能ファイルパス がわからない

    ブラウザの実行可能パスが正しく設定されていることを確認してください。アドレスバーに chrome://version と入力し、実行可能ファイルのパスを確認します:

パラメータ

必須パラメータ

  • --chromium-path Path, -c Path Chrome 実行ファイルへのパス。(必須)

基本パラメータ

  • --custom-headers Headers HTTP ヘッダーをカスタマイズします。JSON シリアライズ後のデータを渡してください。これはグローバルに定義され、すべてのリクエストで使用されます。(デフォルト:null)
  • --post-data PostData, -d PostData POST データ。(デフォルト:null)
  • --max-crawled-count Number, -m Number クローラーの最大タスク数。疑似静的 URL による長いクロール時間を避けるため。(デフォルト:200)
  • --filter-mode Mode, -f Mode フィルタリングモード。simple:静的リソースと重複リクエストのみをフィルタリング。smart:疑似静的 URL をフィルタリングする機能あり。strict:より厳格な疑似静的フィルタリングルール。(デフォルト:smart)
  • --output-mode value, -o value 結果出力モード。console:整形された結果を直接画面に表示。json:すべての結果の JSON シリアライズ文字列を表示。none:出力しない。(デフォルト:console)
  • --output-json filepath 結果を JSON シリアライズ後、指定されたファイルに書き込みます。(デフォルト:null)
  • socks5 プロキシアドレス。crawlergo と Chrome ブラウザからのすべてのネットワークリクエストはプロキシを経由して送信されます。(デフォルト:null)

入力 URL の拡張

  • --fuzz-path 内蔵辞書を使用してパスファジングを行います。(デフォルト:false)
  • --fuzz-path-dict 辞書ファイルのパスを渡してファジングパスをカスタマイズします。例:/home/user/fuzz_dir.txt。ファイルの各行がファジング対象のパスを表します。(デフォルト:null)
  • --robots-path /robots.txt ファイルからパスを解決します。(デフォルト:false)

フォーム自動入力

  • --ignore-url-keywords, -iuk 訪問したくない URL のキーワード。通常、カスタム Cookie 時にログアウトリンクを除外するために使用します。使用方法:-iuk logout -iuk exit。(デフォルト:"logout", "quit", "exit")
  • --form-values, -fv フォーム入力の値をテキストタイプ別にカスタマイズします。定義可能なタイプ:default、mail、code、phone、username、password、qq、id_card、url、date、number。テキストタイプは、input タグの id、name、class、type の 4 つの属性値キーワードで識別されます。例えば、メール入力ボックスを A で自動入力し、パスワード入力ボックスを B で自動入力する場合:-fv mail=A -fv password=B。default はテキストタイプが認識されなかった場合の入力値で、"Crawergo" です。(デフォルト:Crawergo)
  • --form-keyword-values, -fkv キーワードのあいまい一致によりフォーム入力の値をカスタマイズします。キーワードは input タグの id、name、class、 の 4 つの属性値と照合されます。例えば、pass キーワードをあいまい一致させて 123456 を入力し、user キーワードを admin とする場合:。(デフォルト:Crawergo)

クロールプロセスの詳細設定

  • --max-tab-count Number, -t Number クローラーが同時に開ける最大タブ数。(デフォルト:8)
  • --tab-run-timeout Timeout 単一タブページの最大実行時間。(デフォルト:20s)
  • --wait-dom-content-loaded-timeout Timeout ページの読み込み完了を待つ最大タイムアウト。(デフォルト:5s)
  • --event-trigger-interval Interval イベントが自動トリガーされる間隔。ターゲットのネットワークが遅く、DOM 更新の競合により URL のキャプチャ漏れが発生する場合に使用します。(デフォルト:100ms)
  • --event-trigger-mode Value DOM イベント自動トリガーモード。async と sync があり、DOM 更新の競合による URL キャプチャ漏れに対処します。(デフォルト:async)
  • --before-exit-delay 単一タスクの終了時に Chrome を閉じるのを遅延させます。部分的の DOM 更新や XHR リクエストのキャプチャを待つために使用します。(デフォルト:1s)

その他

  • --push-to-proxy クローラー結果を受信するリスニングアドレス。通常は受動的スキャナーのリスニングアドレスです。(デフォルト:null)
  • --push-pool-max クローラー結果をリスニングアドレスに送信する際の最大同時実行数。(デフォルト:10)
  • --log-level ログレベル。debug、info、warn、error、fatal。(デフォルト:info)
  • --no-headless Chrome のヘッドレスモードをオフにし、クロールプロセスを可視化します。(デフォルト:false)

フォローする

微博:9ian1i Twitter: @9ian1i

関連記事:ウェブ脆弱性スキャンのためのブラウザクローラー実践

ツールをダウンロード
--request-proxy proxyAddress
type
-fkv user=admin -fkv pass=123456