JS文件信息收集工具-LinkFinder

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
2
3
$ git clone https://github.com/GerbenJavado/LinkFinder.git
$ cd LinkFinder
$ python setup.py install

解决依赖关系

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 使用截图


文章作者: madcoding
文章链接: https://www.mad-coding.cn/2019/12/23/JS文件信息收集工具-LinkFinder/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 madcoding’s blog
打赏
  • 微信
  • 支付宝

评论