关于链接查找器
LinkFinder是一个python脚本,用于发现JavaScript文件中的端点及其参数。通过这种方式,渗透测试人员和错误猎人能够在他们正在测试的网站上收集新的隐藏端点。导致新的试验场,可能包含新的漏洞。它通过使用python的jsbeautifier与相当大的正则表达式相结合来实现这一点。正则表达式由四个小正则表达式组成。这些负责查找:
- 完整网址 (
https://example.com/*
) - 绝对网址或虚线网址( 或
/\*
../*
) - 至少具有一个斜杠的相对 URL (
text/test.php
) - 不带斜杠的相对 URL (
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 依赖于 和 Python 模块。这些依赖项都可以使用pip安装。argparse
jsbeautifier
$ pip3 install -r requirements.txt
用法
简写 | 长篇 | 描述 |
---|---|---|
-i | --输入 | 输入:网址、文件或文件夹。对于文件夹,可以使用通配符(例如"/*.js")。 |
-o | --输出 | "cli"打印到STDOUT,否则保存HTML文件的位置 默认:输出.html |
-r | --正则表达式 | 正则表达式,用于针对找到的端点进行过滤(例如 ^/api/) |
-d | --域 | 切换为在分析整个域时使用。枚举所有找到的 JS 文件。 |
-乙 | --打嗝 | 切换为在输入包含多个JS文件的Burp"保存所选"文件时使用 |
-c | --饼干 | 向请求添加 Cookie |
-h | --帮助 | 显示帮助消息并退出 |
例子
- 在联机 JavaScript 文件中查找终结点并将 HTML 结果输出到结果的最基本用法.html:
python linkfinder.py -i https://example.com/1.js -o results.html
- CLI/STDOUT 输出(不使用 jsbeautifier,这使得它非常快):
python linkfinder.py -i https://example.com/1.js -o cli
- 分析整个域及其 JS 文件:
python linkfinder.py -i https://example.com -d
- 打嗝输入(在目标中选择要保存的文件,右键单击,将该文件作为输入输入):
Save selected items
python linkfinder.py -i burpfile -b
- 枚举 JavaScript 文件的整个文件夹,同时查找以 /api/ 开头的终结点,最后将结果保存到结果.html:
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
pytest test_parser.py