
LinkFinderは、JavaScriptファイル内のエンドポイントとそのパラメータを発見するために作成されたPythonスクリプトです。これにより、ペネトレーションテスターやバグハンターは、テスト対象のWebサイト上で新たな隠されたエンドポイントを収集できます。その結果、新しいテスト領域が生まれ、新たな脆弱性が含まれている可能性があります。これは、Python用のjsbeautifierと、かなり大きな正規表現を組み合わせて使用します。この正規表現は4つの小さな正規表現で構成されており、以下のものを検出します。
https://example.com/*)/\* または ../*)text/test.php)test.php)出力はHTMLまたはプレーンテキストで提供されます。@karel_origin がLinkFinder用のChrome拡張機能を作成しており、こちらで入手できます。

LinkFinderはPython 3をサポートしています。
$ git clone https://github.com/GerbenJavado/LinkFinder.git
$ cd LinkFinder
$ python setup.py install
LinkFinderは、argparseおよびjsbeautifierのPythonモジュールに依存しています。これらの依存関係はすべてpipを使用してインストールできます。
$ pip3 install -r requirements.txt
python linkfinder.py -i https://example.com/1.js -o results.html
python linkfinder.py -i https://example.com/1.js -o cli
python linkfinder.py -i https://example.com -d
python linkfinder.py -i burpfile -b
python linkfinder.py -i 'Desktop/*.js' -r ^/api/ -o results.html
Dockerイメージのビルド:
docker build -t linkfinder
Dockerで実行:
docker run --rm -v $(pwd):/linkfinder/output linkfinder -i http://example.com/1.js -o /linkfinder/output/output.html
出力パスには必ず/linkfinder/outputを使用してください。そうしないと、コンテナ終了時に出力が失われます。
pytest test_parser.py
| 短縮形 | 長形 | 説明 |
|---|
| -i | --input | 入力:URL、ファイル、またはフォルダ。フォルダの場合はワイルドカードを使用できます(例:'/*.js')。 |
| -o | --output | "cli"を指定するとSTDOUTに出力、それ以外はHTMLファイルの保存先。デフォルト:output.html |
| -r | --regex | 見つかったエンドポイントをフィルタリングするための正規表現(例:^/api/) |
| -d | --domain | ドメイン全体を解析する場合に使用。見つかったすべてのJSファイルを列挙します。 |
| -b | --burp | Burpの「Save selected」ファイル(複数のJSファイルを含む)を入力する場合に使用。 |
| -c | --cookies | リクエストにクッキーを追加します。 |
| -h | --help | ヘルプメッセージを表示して終了します。 |