LinkFinder 是一个用 Python 编写的脚本,用于发现 JavaScript 文件中的端点及其参数。这样,渗透测试人员和漏洞赏金猎人就能够收集他们正在测试的网站上的新隐藏端点。从而获得新的测试领域,可能包含新的漏洞。它通过结合使用 Python 版本的 jsbeautifier 和一个相当大的正则表达式来实现。该正则表达式由四个小正则表达式组成,它们负责查找:
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
Save selected items,然后将该文件作为输入):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" 表示输出到标准输出,否则指定保存 HTML 文件的位置。默认值:output.html |
| -r | --regex | 用于过滤已发现端点的正则表达式(例如 ^/api/) |
| -d | --domain | 当分析整个域名时使用此选项。会枚举所有找到的 JS 文件。 |
| -b | --burp | 当输入包含多个 JS 文件的 Burp 'Save selected' 文件时使用此选项。 |
| -c | --cookies | 为请求添加 cookie |
| -h | --help | 显示帮助信息并退出 |