xnLinkFinder这是用于发现给定目标的端点(和潜在参数)的工具。它可以通过以下方式找到它们:
抓取目标(传递域/URL)
抓取多个目标(传递域/URL 文件)
在给定目录中搜索文件(传递目录名)
从 Burp 项目中获取它们(通过 Burp XML 文件的位置)
从 OWASP ZAP 项目中获取它们(传递 ZAP ASCII 消息文件的位置)
处理waymore结果目录(从中搜索存档的响应文件,waymore -mode R并从中请求 URLwaymore.txt和原始 URL index.txt- 请参阅waymore README.md)
python 脚本基于我的 Burp 扩展GAP的链接查找功能。作为起点,我使用了 Gerben Javado 的神奇工具LinkFinder,并使用 Regex 查找链接,但进行了额外的改进以查找更多链接。
安装
$ git clone https://github.com/xnl-h4ck3r/xnLinkFinder.git
$cd xnLinkFinder
$ sudo python setup.py install
配置文件
该config.yml文件包含可以根据您的需要进行更新的密钥:
linkExclude.css,.jpg,.jpeg-检查所有链接的逗号分隔字符串列表(例如等)。如果链接包含任何字符串,则它将从输出中排除。如果输入是一个目录,则文件名将根据此列表进行检查。
contentExclude- 以逗号分隔的字符串列表(例如text/css,image/jpeg,image/jpg,等),所有响应Content-Type标头都会根据该列表进行检查。任何具有这些内容类型的响应都将被排除并且不会检查链接。
fileExtExclude- 以逗号分隔的字符串列表(例如.zip,.gz,.tar,等),目录模式下的所有文件都会根据该列表进行检查。如果文件具有这些扩展名之一,则不会搜索链接。
regexFiles- 由管道字符分隔的文件类型列表(例如php|php3|php5等)。当发现不是明显的链接但您想要挑选出有趣的文件类型时,这些在链接查找正则表达式中使用。如果添加到此列表,请确保转义任何点以确保正确的正则表达式,例如js\.map
respParamLinksFound† - 是否从响应中找到的链接获取潜在参数:True或False
respParamPathWords† - 是否在检索到的链接中添加路径词作为潜在参数:True或False
respParamJSON† - 如果响应的 MIME 类型包含 JSON,是否添加 JSON Key 值作为潜在参数:True或False
respParamJSVars† - javascript 变量是否设置为var,let或const添加为潜在参数:True或False
respParamXML† - 如果响应的 MIME 类型包含 XML,是否添加 XML 属性值作为潜在参数:True或False
respParamInputField† - 如果响应的 MIME 类型包含 HTML,是否添加任何 INPUT 字段的 NAME 和 ID 属性作为潜在参数:True或False
respParamMetaName† - 如果响应的 MIME 类型包含 HTML,是否添加任何 META 标签的 NAME 属性作为潜在参数:True或False
† 如果在配置文件中找不到它们,它们将默认为True
》》》》》》》例子:
从特定目标查找链接 - 基本
python3 xnLinkFinder.py -i target.com
从特定目标查找链接 - 详细
理想情况下,为主域(包括架构)提供范围前缀 ( -sp),并提供范围过滤器 ( -sf) 以仅将结果过滤到相关域(可以是文件或范围域)。此外,您可以传递 cookie 和客户标头以确保您找到仅对授权用户可用的链接。指定用户代理 ( -u desktop mobile) 将首先使用桌面用户代理搜索所有链接,然后使用移动用户代理再次尝试。可能存在与给定的用户代理相关的特定端点。给出深度值 ( -d) 将继续向在先前的深度搜索中找到的链接发送请求以查找更多链接。
python3 xnLinkFinder.py -i target.com -sp target_prefix.txt -sf target_scope.txt -spo -inc -vv -H 'Authorization: Bearer XXXXXXXXXXXXXX' -c 'SessionId=MYSESSIONID' -u desktop mobile -d 10
从 URL 列表中查找链接 - 基本
例如,如果您有一个 JS 文件 URL 文件,您可以在其中查找链接:
python3 xnLinkFinder.py -i target_js.txt
从目录中的文件中查找链接 - 基本
如果您有文件,例如 JS 文件、HTTP 响应等,您可以在这些文件中查找链接:
python3 xnLinkFinder.py -i ~/Tools/waymore/results/target.com
注意:子目录也被检查。可以指定该-mfs选项以跳过特定大小的文件。
从 Burp 项目中查找链接 - 基本
在 Burp 中,通过突出显示范围来选择要搜索的项目,例如,右键单击并选择Save selected items. 确保base64-encode requests and responses在保存之前选中选项选项。要从文件中获取所有链接(即使文件很大,您也可以获取所有链接):
python3 xnLinkFinder.py -i target_burp.xml
注意:xnLinkFinder 假设如果传递的文件的第一行以-i开头,<?xml那么您正在尝试处理 Burp 文件。
从 Burp 项目中查找链接 - 详细
理想情况下,为主域(包括架构)提供范围前缀 ( -sp),并提供范围过滤器 ( -sf) 以仅将结果过滤到相关域。
python3 xnLinkFinder.py -i target_burp.xml -o target_burp.txt -sp https://www.target.com -sf target.* -ow -spo -inc -vv
从 OWASP ZAP 项目中查找链接 - 基本
在 ZAP 中,通过突出显示历史记录来选择要搜索的项目,例如,单击菜单Export并选择Export Messages to File...。这将允许您保存所有要搜索的请求和响应的 ASCII 文本文件。要从文件中获取所有链接(即使文件很大,您也可以获取所有链接):
python3 xnLinkFinder.py -i target_zap.txt
注意:xnLinkFinder 假设如果传递的文件的第一行是(v2.11.1) 或(v2.12)-i格式,那么您正在尝试处理 OWASP ZAP ASCII 文本文件。==== 99 =============99 ==========
从 Waymore 结果目录中查找链接
waymore工具可用于从各种第三方 API 获取 URL,还可以从 archive.org(Wayback Machine)下载存档响应。将 waymore 结果目录传递给 xnLinKFinder 将搜索存档响应的内容,并从这些响应中请求 URLwaymore.txt和存档 URL,index.txt并从这些响应中获取更多链接。
python3 xnLinkFinder.py -i ~/Tools/waymore/results/target.com
注意:它作为普通目录传递,但 xnLinkFinder 将确定它是一个 waymore 结果目录和进程。
管道连接到其他工具
您可以将 xnLinkFinder 通过管道传输到其他工具。任何错误都会发送到stderr,找到的任何链接都会发送到stdout。除了通过管道传输到下一个程序的链接之外,仍然会创建输出文件。但是,潜在参数不会通过管道传输到下一个程序,但它们仍会写入文件。例如:
python3 xnLinkFinder.py -i redbull.com -sp https://redbull.com -sf rebbull.* -d 3 | unfurl keys | sort -u
您也可以通过stdin而不是传递输入-i。
cat redbull_subs.txt | python3 xnLinkFinder.py -sp https://redbull.com -sf rebbull.* -d 3
注意:您不能通过管道输入 Burp 或 ZAP 文件,这些文件必须使用-i.
示例输出
域的活动链接查找:
管道输入和输出:
项目地址:https://github.com/xnl-h4ck3r/xnLinkFinder
披露 JWT Secret Poisoning 中的一个新漏洞 (CVE-2022-23529)
https://unit42.paloaltonetworks.com/jsonwebtoken-vulnerability-cve-2022-23529/#post-126421-_e5mnowq02vg4
Zyxel 管理界面中无用的路径遍历 (CVE-2022-2030)
https://security.humanativaspa.it/useless-path-traversals-in-zyxel-admin-interface-cve-2022-2030/
CVE-2023-0210:Linux 内核中的缺陷允许未经身份验证的远程 DOS 攻击
https://securityonline.info/cve-2023-0210-flaw-in-linux-kernel-allows-unauthenticated-remote-dos-attacks/