0x00 前言
我们在渗透测试的之前,信息收集是必要的步骤,而JS文件中往往会暴露出很多的信息,比如一些注释的中铭感信息,内网ip地址泄露等等,还会有一些绝对路径或者相对路径的url,而这些url中很有可能就存在着一些未授权访问或者其他更高级的漏洞,但是手动的去一个个查看的效率太过于地下,所以这里分享一个JS文件的信息收集工具——LinkFinder
0x01 LinkFinder介绍
LinkFinder是一个Python脚本,旨在发现JavaScript文件中的端点及其参数。这样,渗透测试人员和Bug猎手就可以在他们正在测试的网站上收集新的,隐藏的端点。导致新的测试环境,可能包含新的漏洞。它通过将jsbeautifier for python与相当大的正则表达式结合使用来实现。正则表达式由四个小的正则表达式组成。这些负责查找:
- 完整网址(
https://example.com/*
) - 绝对URL或点分URL(
/\*
或../*
) - 带有至少一个斜杠(
text/test.php
)的相对URL - 相对网址,不带斜线(
test.php
)
输出以HTML或纯文本形式给出
0x02 安装
2.1 手动安装
克隆到本地安装
LinkFinder支持Python 3。
1 | $ git clone https://github.com/GerbenJavado/LinkFinder.git |
解决依赖关系
1 | pip3 install -r requirements.txt |
2.2 Docker一键安装
创建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` 路径在你的输出路径,
0x03 使用方法
3.1 参数解释
Short Form | Long Form | Description |
---|---|---|
-i | –input | 输入一个URL,文件或者文件夹,js文件必须要以.js后缀结尾 |
-o | –output | 默认是以html的结果输出,也可以使用命令行的形式输出 |
-r | –regex | 使用正则快速的筛选我们需要的信息 (e.g. ^/api/) |
-d | –domain | Toggle to use when analyzing an entire domain. Enumerates over all found JS files. |
-b | –burp | Toggle to use when inputting a Burp ‘Save selected’ file containing multiple JS files |
-c | –cookies | Add cookies to the request |
-h | –help | show the help message and exit |
3.2 使用示例
- 在在线JavaScript文件中查找端点并将HTML结果输出到results.html的最基本用法:
1 | python linkfinder.py -i https://example.com/1.js -o results.html |
- CLI / STDOUT输出(不使用jsbeautifier,这使其非常快):
1 | python linkfinder.py -i https://example.com/1.js -o cli |
- 分析整个域及其JS文件:
1 | python linkfinder.py -i https://example.com -d |
- 打p输入(在目标中选择要保存的文件,右键单击,然后
Save selected items
将该文件作为输入):
1 | python linkfinder.py -i burpfile -b |
- 枚举JavaScript文件的整个文件夹,同时查找以/ api /开头的端点,最后将结果保存到results.html中:
1 | python linkfinder.py -i 'Desktop/*.js' -r ^/api/ -o results.html |
0x04 使用截图
https://www.mad-coding.cn/2019/12/23/JS%E6%96%87%E4%BB%B6%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86%E5%B7%A5%E5%85%B7-LinkFinder/#0x01-LinkFinder%E4%BB%8B%E7%BB%8D