这是一个用于发现端点、发现潜在参数、生成目标特定字典并查找给定目标秘密的工具。它可以通过以下方式找到它们:
waymore -mode R 的存档响应文件,以及从 waymore.txt 和 waymore_index.txt 中的原始 URL 请求 URL - 参见 waymore README.md)该 Python 脚本基于我的 Burp 扩展 GAP 的链接发现功能。 作为起点,我采用了 Gerben Javado 的出色工具 LinkFinder,并使用其正则表达式来查找链接,但进行了额外改进以发现更多。
xnLinkFinder 支持 Python 3。
在默认(全局)Python 环境中安装 xnLinkFinder。```bash
pip install xnLinkFinder
或```bash
pip install git+https://github.com/xnl-h4ck3r/xnLinkFinder.git -v
您可以通过升级```bash pip install --upgrade xnLinkFinder
### pipx
使用[pipx](https://pypa.github.io/pipx/)在隔离的 Python 环境中快速设置```bash
pipx install git+https://github.com/xnl-h4ck3r/xnLinkFinder.git
注意:要从PDF文件中提取链接,你可以在系统上安装pdftotext。在Linux上可以使用sudo apt install -y poppler-utils安装,在macOS上使用brew install poppler安装。如果没有安装pdftotext,xnLinkFinder将回退使用pypdf Python库。如果未找到文本(例如扫描的PDF),它将尝试使用ocrmypdf(如果已安装,例如sudo apt install -y ocrmypdf)。使用pdftotext和ocrmypdf通常比单独使用pypdf效果更好。
| ----------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -i | --input | 输入:一个 URL、URL 文本文件、要搜索的文件目录、Burp XML 输出文件、ZAP 输出文件、Caido CSV 文件、HAR JSON 文件或要搜索内容的单个文件。 |
| -o | --output | 保存链接输出的文件,可选路径(默认:output.txt)。如果设置为 cli,则仅输出到 STDOUT。如果文件已存在,则会追加内容(并去重),除非传递了 -ow 选项。 |
| -op | --output-params | 保存潜在参数输出的文件,可选路径(默认:parameters.txt)。如果设置为 cli,则仅输出到 STDOUT(但不会通过管道传递给其他程序)。如果文件已存在,则会追加内容(并去重),除非传递了 -ow 选项。 |
| -owl | --output-wordlist | 保存目标特定词表输出的文件,可选路径(默认:不输出词表)。如果设置为 cli,则仅输出到 STDOUT(但不会通过管道传递给其他程序)。如果文件已存在,则会追加内容(并去重),除非传递了 -ow 选项。 |
| -oo | --output-oos | 保存范围外链接输出的文件,可选路径(默认:不输出 OOS)。如果设置为 ,则仅输出到 STDOUT(但不会通过管道传递给其他程序)。如果文件已存在,则会追加内容(并去重),除非传递了 选项。 |
| -os | --output-secrets | 保存响应中发现的秘密信息的文件(JSON 格式),可选路径(默认:不输出秘密信息)。如果文件已存在,则会合并秘密信息,除非传递了 选项。秘密信息按类型和值分组,并附带每个来源的数组。 |
| -ow | --output-overwrite | 如果输出文件已存在,则覆盖而非追加。 |
| -sp | --scope-prefix | 任何以 开头的链接将在输出中附加作用域域名,而不是原始链接。如果传递的值是有效文件名,则使用该文件;否则使用字符串字面量。 |
| -spo | --scope-prefix-original | 如果传递了 参数,则决定以 开头的原始链接是否也包含在输出中(默认:false) |
| -spkf | --scope-prefix-keep-failed | 如果传递了 参数,则决定当响应为 404 或发生 RequestException 时,是否仍保留带前缀的链接在输出中(默认:false) |
| -sf | --scope-filter | 将过滤输出链接,仅当链接的域名属于指定作用域时才包含。如果传递的值是有效文件名,则使用该文件;否则使用字符串字面量。如果输入是域名/URL(或域名/URL 文件),此参数现在是必需的,以防止爬取不在作用域内的网站并避免误导性结果。 |
| -c | --cookies † | 添加 HTTP 请求附带的 Cookie。传递格式: |
| -H | --headers † | 添加 HTTP 请求附带的自定义 Header。传递格式: |
| -ra | --regex-after | 在输出前对发现的端点进行过滤的正则表达式(例如 )。如果匹配,则输出该链接。 |
| -d | --depth † | 搜索深度级别。例如,传递值为 2 时,会将最初发现的所有链接再次搜索更多链接(默认:1)。对于 Burp 文件、ZAP 文件、Caido 文件和 HAR 文件,此选项被忽略,因为这些文件可能很大且消耗大量内存。建议使用 ()参数,以确保可以尝试请求未包含域名的链接。 |
| -p | --processes † | 对 URL 或 URL 文件(非 Burp 文件、ZAP 文件、Caido 文件或 HAR 文件)发出请求时进行基本的多线程处理。此参数决定使用的进程(线程)数(默认:25) |
| -rl | --rate-limit † | 每秒发送的最大请求数(默认:0,不限速)。这有助于防止压垮目标服务器。 |
| -x | --exclude | 额外的链接排除项(除 中的列表外),以逗号分隔列表形式提供,例如 |
| -orig | --origin | 是否希望在输出中显示链接的来源。在输出中显示为 (默认:false) |
| -prefixed | | 是否希望在输出中看到哪些链接被添加了前缀。在输出中显示 跟在链接和来源之后(默认:false) |
| -xrel | --exclude-relative-links | 默认情况下,如果结果中有以 或 开头的链接,它们将被包含在内。如果使用此参数,这些相对链接将不会被添加。 |
| -t | --timeout † | 等待服务器发送数据的超时时间(秒,默认:10 秒) |
| -r | --retries † | 请求失败(例如超时、连接错误等)后的重试次数。最多重试 5 次(默认:0) |
| -inc | --include | 在输出中包含输入()链接(默认:false) |
| -u | --user-agent † | 获取链接的 User Agent 类型,例如 。可取值:、、 和 。另有 、 和 作为 的子集,可单独使用。 |
| -uc | --user-agent-custom † | 用于所有请求的自定义 User Agent 字符串。这将覆盖 / 参数。例如,当程序需要特定的 User Agent Header 来识别你时可以使用。 |
| -insecure | † | 是否在发出请求时禁用 TLS 证书检查(默认:false) |
| -s429 | † | 当超过 95% 的响应返回 429 Too Many Requests 时停止(默认:false) |
| -s403 | † | 当超过 95% 的响应返回 403 Forbidden 时停止(默认:false) |
| -sTO | † | 当超过 95% 的请求超时时停止(默认:false) |
| -sCE | † | 当超过 95% 的请求出现连接错误时停止(默认:false) |
| -m | --memory-threshold | 内存阈值百分比。如果机器内存使用超过该阈值,程序将在耗尽内存前优雅地停止和结束(默认:95) |
| -mfs | --max-file-size † | 如果 是目录,被检查文件的最大文件大小(字节)。超过此大小的文件将被忽略(默认:500 MB)。设置为 0 表示不忽略任何文件,无论大小。 |
| -mrs | --max-response-size † | 下载的最大响应大小(MB)。大于此值的响应将被跳过(默认:100 MB)。 |
| -fp | --forward-proxy † | 对于使用 URL(或 URL 文件)的主动链接发现,通过代理(如 Burp 或 Caido)重放请求,例如 。 |
| -rp | --request-proxy | 使用的请求代理。可以是代理字符串(例如 、)或包含代理列表的文件(每行一个,随机选择)。 |
| | --heap | 是否对已访问的 URL 进行堆快照并从中提取链接。这会花费更长时间,但可能发现标准静态分析可能遗漏的动态生成的链接(需要安装 Playwright)。 |
| -ro | --readable-only | 如果传递此参数,则在搜索链接前仅使用 BeautifulSoup 从 HTML 响应/文件中提取人类可读文本。这将排除 、、 和 标签中的内容。 |
| -ascii-only | | 是否仅当链接和参数仅包含 ASCII 字符时才添加。当你知道目标可能使用 ASCII 字符,并且由于某种原因从二进制文件中得到大量误报时,这很有用。 |
| -mtl | --max-time-limit | 运行前的最长时间限制(分钟,默认:0)。如果传递 0,则表示无限制。 |
| | --config | YML 配置文件的路径。如果未传递,则查找默认目录中的 文件,通常为 。 |
| -nwlpl | --no-wordlist-plurals | 当为目标特定词表发现单词时,默认情况下,如果从复数形式存在单数形式,反之亦然,则会添加新单词。如果使用此参数,则不执行此操作。 |
| -nwlpw | --no-wordlist-pathwords | 默认情况下,链接中找到的所有路径单词都将被处理为目标特定词表。如果使用此参数,则不会处理它们。 |
| -nwlpm | --no-wordlist-parameters | 默认情况下,链接中找到的所有参数都将被处理为目标特定词表。如果使用此参数,则不会处理它们。 |
| -nwlc | --no-wordlist-comments | 默认情况下,页面中的所有注释都将被处理为目标特定词表。如果使用此参数,则不会处理它们。 |
| -nwlia | --no-wordlist-imgalt | 默认情况下,所有图片的 'alt' 属性都将被处理为目标特定词表。如果使用此参数,则不会处理它们。 |
| -nwld | --no-wordlist-digits | 从目标特定词表中排除包含数字字符的任何单词。 |
| -nwll | --no-wordlist-lowercase | 默认情况下,任何包含大写字符的单词也会添加其小写形式。如果使用此参数,则不会添加小写单词。 |
| -wlml | --wordlist-maxlen | 添加到目标特定词表的单词最大长度,不包括复数形式(默认:0 - 无限制) |
| -swf | --stopwords-file | 额外的停用词文件(除了 YML 配置文件中的 "stopWords" 之外),用于从目标特定词表中排除单词。停用词用于自然语言处理,不同库中可能有不同的列表。根据你的目标,你可能希望添加不同语言的单词。 |
| -brt | --burpfile-remove-tags | 当通过 传入 Burp 文件时,交互式地询问用户是否要从该文件中移除不必要的标签(有时 Burp XML 文件存在问题,可以通过移除不必要的标签来解决,同时也能使文件变小)。如果你在脚本中使用 xnLinkFinder,你不希望中断以等待用户输入,因此你可以通过传递此参数并设置 或 来设置。注意:此操作会永久修改文件。 |
| -all | --all-tlds | 将返回所有找到的链接,即使 TLD 不常见。这可能导致大量误报,例如变量名等可能被认为是可能的真实域名。默认情况下,仅返回具有常见 TLD( 中的 )的链接。 |
| -cl | --content-length | 在爬取时显示响应的 Content-Length。 |
| -nb | --no-banner | 隐藏工具横幅。 |
| -v | --verbose | 详细输出 |
| -vv | --vverbose | 更详细的输出 |
| | --version | 显示当前版本号。 |
| -h | --help | 显示帮助信息并退出 |† 不适用于目录、Burp XML 文件、ZAP 文件、Caido CSV 文件或 HAR 文件的输入
config.yml 文件(通常位于 ~/.config/xnLinkFinder/)包含以下可自定义的键值:
linkExclude - 逗号分隔的字符串列表(例如 .css,.jpg,.jpeg 等),所有链接都会根据此列表进行过滤。如果链接包含列表中的任一字符串,则将其从输出中排除。如果输入是目录,则文件名会依据此列表进行检查。contentExclude - 逗号分隔的字符串列表(例如 text/css,image/jpeg,image/jpg 等),所有响应的 Content-Type 头部会根据此列表进行过滤。任何包含这些内容类型的响应都会被排除,不进行链接检查。fileExtExclude - 逗号分隔的字符串列表(例如 .zip,.gz,.tar 等),目录模式下的所有文件会依据此列表进行检查。如果文件扩展名在此列表中,则不会搜索其中的链接。同样,在普通模式下,如果响应没有可用于排除检查的内容类型,则会检查 URL 末尾是否包含这些扩展名,以决定是否搜索链接。regexFiles - 用竖线字符分隔的文件类型列表(例如 php|php3|php5 等)。这些用于链接查找正则表达式,当存在不明显的链接但你想提取的有趣文件类型时使用。如果向此列表添加条目,请确保点号已被转义以保证正则表达式正确,例如 js\.map。respParamLinksFound † - 是否从响应中找到的链接获取潜在参数:True 或 False† 如果在配置文件中未找到这些项,则默认为 True
xnLinkFinder -i target.com -sf target.com
### 从特定目标查找链接 - 详细说明
理想情况下,使用范围前缀(`-sp`)指定主域(包含协议),并使用范围过滤器(`-sf`)将结果过滤至相关域(可以是文件或范围内域名)。此外,你可以传递 Cookie 和自定义标头,以确保仅发现授权用户可访问的链接。
指定用户代理(`-u desktop mobile`)将首先使用桌面端用户代理搜索所有链接,然后再次使用移动端用户代理进行尝试。可能存在与给定用户代理相关的特定端点。提供深度值(`-d`)将持续向先前深度搜索中找到的链接发送请求,以发现更多链接。```
xnLinkFinder -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
例如,如果你有一个JS文件URL列表文件,你可以查找其中的链接:``` xnLinkFinder -i target_js.txt -sf target.com
注意:如果传入的文件第一行以 `//` 或 `http` 开头,或者是域名的格式(例如 `example.com`、`sub.example.co.uk`),则该文件被视为 URL 列表;否则,它被视为需要搜索内容的文件(除非是 Burp、Zap、Caido 或 HAR 文件)。
### 从文件内容中查找链接 - 基本用法
例如,如果你保存了一个响应,你可以在其中查找链接:```
xnLinkFinder -i response.txt -sf target.com
注意:传递的文件将被视为URL列表,如果其第一行以//或http开头,或者是域名格式(例如example.com,sub.example.co.uk),否则它被认为是要搜索内容的文件(除非是Burp、Zap、Caido或HAR文件)。
如果你有一些文件,例如JS文件、HTTP响应等,你可以在这些文件中查找链接:``` xnLinkFinder -i ~/.config/waymore/results/target.com
**注意:** 子目录也会被检查。可以使用 `-mfs` 选项跳过超过特定大小的文件。
### 从 Burp 项目中查找链接 - 基本操作
在 Burp 中,通过高亮范围(例如)选择要搜索的项目,右键单击并选择 `Save selected items`。保存前请确保勾选了 `base64-encode requests and responses` 选项。
要从文件中获取所有链接(即使文件非常大,也能获取所有链接):```
xnLinkFinder -i target_burp.xml
注意:xnLinkFinder 假设,如果通过 -i 传入的文件的第一行以 <?xml 开头,则您正在尝试处理一个 Burp 文件。
理想情况下,提供范围前缀(-sp)与主域名(包括协议),以及范围过滤器(-sf)以将结果仅过滤到相关域名。```
xnLinkFinder -i target_burp.xml -o target_burp.txt -sp https://www.target.com -sf target.* -ow -spo -inc -vv
### Find Links from a ZAP project - Basic
在ZAP中,通过高亮历史记录等来选中要搜索的项目,点击菜单 `Export` 并选择 `Save Messages...`(在旧版本中为 `Export Messages to File...`)。这可以将你要搜索的所有请求和响应保存为一个ASCII文本文件。
要从该文件中获取所有链接(即使文件非常大,也能获取所有链接):```
xnLinkFinder -i target_zap.txt
NOTE: xnLinkFinder 假设通过 -i 传入的文件的第一行格式为 ==== 99 ========== 或 ===99 ========== 等,则表示你正在尝试处理 ZAP ASCII 文本文件。
在 Caido 中,转到 历史记录 部分并选择 导出 选项。
如果你使用的是 Caido Pro 或企业版,则选择 导出当前行 选项并选择 为 CSV。转到 导出 部分并下载 CSV 文件。然后将其作为输入传入:``` xnLinkFinder -i 2023-03-18-010332_csv_requests.csv
如果你使用的是 Caido Community 版本,则需要选择 **Export all** 选项并选择 **As CSV**。前往 **Exports** 部分,下载 CSV 文件。由于你有完整的历史记录,你需要从 CSV 文件中删除所有不相关的内容。使用下面的示例,其中 `redbull` 是你所关注目标域名的主要部分。```
cat 2023-03-18-010332_csv_requests.csv | grep -E '^id|^[0-9]+,[^,]*redbull' > caido_redbull.csv
xnLinkFinder -i caido_redbull.csv
注意:xnLinkFinder做出假设,如果通过-i传递的文件的第一行格式为id,host,method,那么你正在尝试处理Caido导出的CSV文件。
HAR文件是一个包含HTTP请求和响应列表的JSON文件。它是一种存储HTTP流量的常见格式。您可以从大多数Web浏览器中导出HAR文件,通常从开发者工具的网络选项卡中。将文件作为输入传递:``` xnLinkFinder -i browser.har
注意:xnLinkFinder 做出如下假设:如果文件名以 `.har` 结尾,或者文件的第一行包含 `"log"` 且以 `{` 开头,那么您正在尝试处理一个 HAR 文件。
### 从 Waymore 结果目录中查找链接
[waymore](https://github.com/xnl-h4ck3r/waymore) 工具可用于从各种第三方 API 获取 URL,以及从各种来源下载存档的响应。将 waymore 结果目录传递给 `xnLinKFinder` 将搜索存档响应的内容,并从 `waymore.txt` 请求 URL,以及从 `waymore_index.txt`(对于旧版本 `waymore`,则是 `index.txt`)请求存档的 URL,并从这些响应中获取更多链接。如果 `-d`/`--depth` 为零,则 `waymore_index.txt` 中的 URL 将直接返回,而不会发起请求。```
xnLinkFinder -i ~/Tools/waymore/results/target.com
注意:它作为普通目录传递,但 xnLinkFinder 将识别它为 waymore 结果目录并相应处理。这依赖于 URL 文件的默认命名约定为 waymore.txt,并且该文件位于归档文件所在的同一目录中(默认情况下如此)。
您可以将 xnLinkFinder 的输出通过管道传输到其他工具。任何错误都会发送到 stderr,找到的链接会发送到 stdout。除了将链接通过管道传输到下一个程序之外,输出文件仍然会被创建。然而,潜在参数不会通过管道传输到下一个程序,但它们仍然会写入文件。例如:```
xnLinkFinder -i redbull.com -sp https://redbull.com -sf rebbull.* -d 3 | unfurl keys | sort -u
你也可以通过 `stdin` 而不是 `-i` 传递输入。```
cat redbull_subs.txt | xnLinkFinder -sp https://redbull.com -sf rebbull.* -d 3
注意:你不能通过管道传入 Burp、ZAP、Caido 或 HAR 文件,这些必须使用 -i 参数传递。
-sp。可以是一个作用域域名,也可以是包含多个作用域域名的文件。
以下是所用格式的示例(不应包含路径,也不使用通配符。Schema 可选,但默认为 http): ```
http://www.target.com
https://target-payments.com
https://static.target-cdn.com
如果发现一个链接没有域名,例如 /path/to/example.js,那么传递 -sp http://www.target.com 将输出 http://www.target.com/path/to/example.js;并且如果深度 (-d) 大于 1,则可以向该 URL 发送请求以搜索更多链接。如果使用 -sp 传递的是一个域名文件,则输出将包含每个域名后接 /path/to/example.js,从而增加找到更多链接的机会。
-sp,但仍希望输出额外包含 /path/to/example.js(不带域名)的原始链接,请传递参数 -spo。-sf。这将确保输出中只返回相关的域名,更重要的是,如果深度 (-d) 大于 1,则不会对超出作用域的目标搜索链接或参数。这可以是一个作用域域名,也可以是包含多个作用域域名的文件。以下是所用格式的示例(不应包含协议或路径): ```
target.*
target-payments.com
static.target-cdn.com
这仅用于过滤链接域名。
-ra。建议使用 https://regex101.com/ 检查你的正则表达式是否符合预期。-v 选项可以更好地了解工具正在做什么。-vv 选项可能会显示发生的错误,这些错误可能可以解决,或者你可以在 GitHub 上提出问题。-c)、headers(-H)和 regex(-ra)值放在单引号内,例如 -ra '/api/v[0-9]\.[0-9]\*'-o 选项为链接指定特定的输出文件名,而不是默认的 output.txt。如果你计划运行深度较大的搜索,建议从深度 2 开始,并使用 -v 选项查看返回结果。然后可以增加深度,新输出将追加到现有文件中,除非你传递 -ow。-op 选项为潜在参数指定特定的输出文件名,而不是默认的 parameters.txt。任何输出都会追加到现有文件中,除非你传递 -ow。如果你遇到任何问题,或者有改进建议,欢迎在 GitHub 上提出问题。如果遇到问题,提供你运行的确切命令以及问题的详细描述会很有帮助。如果可能,请使用 -vv 重现问题,并告知任何出现的错误消息。
查找活动链接域:
...
管道输入和输出:
祝你好运,狩猎愉快! 如果你真的喜欢这个工具(或其他工具),或者它帮助你找到了丰厚的赏金,请考虑 请我喝杯咖啡! ☕(我需要咖啡因!)
🤘 /XNL-h4ck3r
cli-ow-ow/-sp/-spkf'name1=value1; name2=value2;''Header1: value1; Header2: value2;'/api/v[0-9]\.[0-9]\*-sp--scope-prefixconfig.ymlcareers,forumLINK-URL [ORIGIN-URL](PREFIXED)./../-i-u desktop mobiledesktopmobileset-top-boxesgame-consolemobile-applemobile-androidmobile-windowsmobile-u--user-agent-ihttp://127.0.0.1:8080http://user:[email protected]:8000socks5://host:port<script><style><noscript><template>config.yml~/.config/xnLinkFinderrespParamPathWords 为 True,则此参数无效,除非同时传递 -nwlpm/--no-wordlist-parameters。-itruefalseconfig.ymlcommonTLDsrespParamPathWords † - 是否将检索到的链接中的路径单词作为潜在参数:True 或 FalserespParamJSON † - 如果响应的 MIME 类型包含 JSON,是否将 JSON 键值作为潜在参数:True 或 FalserespParamJSVars † - 是否将使用 var、let 或 const 声明的 JavaScript 变量作为潜在参数:True 或 FalserespParamXML † - 如果响应的 MIME 类型包含 XML,是否将 XML 属性值作为潜在参数:True 或 FalserespParamInputField † - 如果响应的 MIME 类型包含 HTML 或 JAVASCRIPT(因为 HTML 可能内嵌在 HTML 中),是否将任何 INPUT(或 TEXTAREA/SELECT/BUTTON)字段的 NAME 和 ID 属性作为潜在参数:True 或 FalserespParamMetaName † - 如果响应的 MIME 类型包含 HTML,是否将任何 META 标签的 NAME 属性作为潜在参数:True 或 FalsewordsContentTypes - 逗号分隔的字符串列表(例如 text/html,text/plain),用于指定哪些响应内容类型会被搜索单词,以生成目标特定的单词列表。stopWords - 逗号分隔的字符串列表(例如 then,this,that),用于指定从目标特定单词列表中排除的单词。此默认列表最初由英语限定词、并列连词和介词,以及来自 Scikit-Learn(一个 Python 机器学习库)的停用词列表组成。commonTLDs - 逗号分隔的最常见顶级域名列表。除非传递了 -all/--all-tlds 参数,否则仅返回域名顶级域名在此列表中的链接。-d),要小心某些网站使用动态链接,因此它可能会不断找到新的链接。如果找不到新链接,xnLinkFinder 将停止搜索。建议同时提供停止标志(s429、s403、sTO、sCE)。-d 值)很高且资源有限时,程序将在达到内存阈值(-m)时停止,并在被杀死之前优雅地结束并保留数据。Ctrl-C),请耐心等待,所有已收集的数据将在优雅结束前保存。-orig 选项将显示找到链接的 URL。这意味着如果在多个来源上找到相同的链接,输出中可能会有重复的链接,但会用方括号后缀来源 URL。desktop(除非使用 -uc/--user-agent-custom 参数)。如果你的目标可能针对不同的 User-Agent 组有不同链接,则指定 -u desktop mobile 等(用空格分隔)。mobile 用户代理选项是 mobile-apple、mobile-android 和 mobile-windows 的组合。可能的值有 desktop、mobile、set-top-boxes 和 game-console。-i 设置为目录时,将搜索该目录根目录下文件的内容以查找链接。不搜索子目录中的文件。任何超过 -mfs(默认:500 MB)设置大小的文件都将被跳过。-replay-proxy 选项时,有时请求可能需要更长时间。如果你开始看到更多“请求超时”错误(如果使用 -v 或 -vv 选项,你会看到错误),请考虑使用 -t 提高超时限制。-ascii-only。这可以消除许多可能从二进制数据中返回的误报。-d/--depth 参数以搜索从 URL 请求中找到的任何额外链接,以及 -u/--user-agent(如果你认为可能存在不同内容),例如 -u desktop mobile。-owl/--output-wordlist 文件名以保存目标特定的单词列表。该列表在模糊测试目标时非常有用。wordsContentTypes 部分指定的内容类型。默认为 text/html、application/xml、application/json、text/plain<meta> 标签内容的单词,其中:
Property 为 og:title 或 og:descriptionName 为 description、keywords、twitter:title 或 twitter:descriptionalt 属性的单词<style>、<script> 和 <link> 标签)-swf/--stopwords-file 选项提供额外的停用词。你可能需要根据目标包含其他语言的停用词。停用词用于自然语言处理(NLP),可以在网上找到许多适合不同需求的停用词列表。