简介 🧐
dirsearch
-
项目地址:https://github.com/maurosoria/dirsearch
安装方式
-
使用git安装: git clone https://github.com/maurosoria/dirsearch.git --depth 1
(推荐) -
使用Docker安装: docker build -t "dirsearch:v0.4.3" .
-
使用PyPi安装: pip3 install dirsearch
orpip install dirsearch
---### 参数选项
用法: dirsearch.py [-u|--url] 目标 [-e|--extensions] 扩展名 [选项]
选项:
--version 显示程序的版本号并退出
-h, --help 显示此帮助信息并退出
必要:
-u URL, --url=URL 目标URL,可以使用多个标志
-l PATH, --url-file=PATH
URL列表文件
--stdin 从标准输入读取URL
--cidr=CIDR 目标CIDR
--raw=PATH 从文件加载原始HTTP请求(使用'--scheme'标志设置方案)
-s SESSION_FILE, --session=SESSION_FILE
会话文件
--config=PATH 配置文件路径(默认:
'DIRSEARCH_CONFIG'环境变量,否则为'config.ini')
字典设置:
-w WORDLISTS, --wordlists=WORDLISTS
自定义字典(用逗号分隔)
-e EXTENSIONS, --extensions=EXTENSIONS
扩展名列表,用逗号分隔(例如php,asp)
-f, --force-extensions
将扩展名添加到每个字典条目的末尾,传递斜杠变成目录 / 。默认情况下,dirsearch只用扩展名替换%EXT%关键字
-O, --overwrite-extensions
用您的扩展名覆盖字典中的其他扩展名(通过`-e`选择)
--exclude-extensions=EXTENSIONS
排除扩展名列表,用逗号分隔(例如asp,jsp)
--remove-extensions
从所有路径中删除扩展名(例如admin.php -> admin)
--prefixes=PREFIXES
为所有字典条目添加自定义前缀(用逗号分隔)
--suffixes=SUFFIXES
为所有字典条目添加自定义后缀,忽略目录(用逗号分隔)
-U, --uppercase 大写字典
-L, --lowercase 小写字典
-C, --capital 首字母大写字典
常规设置:
-t THREADS, --threads=THREADS
线程数
-r, --recursive 递归暴力破解
--deep-recursive 对每个目录深度执行递归扫描(例如api/users -> api/)
--force-recursive 对每个找到的路径进行递归暴力破解,不仅仅是目录
-R DEPTH, --max-recursion-depth=DEPTH
最大递归深度
--recursion-status=CODES
进行递归扫描的有效状态码,支持范围(用逗号分隔)
--subdirs=SUBDIRS 扫描给定URL的子目录(用逗号分隔)
--exclude-subdirs=SUBDIRS
在递归扫描期间排除以下子目录(用逗号分隔)
-i CODES, --include-status=CODES
包含状态码,用逗号分隔,支持范围(例如200,300-399)
-x CODES, --exclude-status=CODES
排除状态码,用逗号分隔,支持范围(例如301,500-599)
--exclude-sizes=SIZES
按大小排除响应,用逗号分隔(例如0B,4KB)
--exclude-text=TEXTS
按文本排除响应,可以使用多个标志
--exclude-regex=REGEX
按正则表达式排除响应
--exclude-redirect=STRING
如果此正则表达式(或文本)匹配重定向URL,则排除响应(例如'/index.html')
--exclude-response=PATH
排除与此页面响应类似的响应,路径作为输入(例如404.html)
--skip-on-status=CODES
每当命中这些状态码之一时跳过目标,用逗号分隔,支持范围
--min-response-size=LENGTH
最小响应长度
--max-response-size=LENGTH
最大响应长度
--max-time=SECONDS 扫描的最大运行时间
--exit-on-error 发生错误时退出
请求设置:
-m METHOD, --http-method=METHOD
HTTP方法(默认:GET)
-d DATA, --data=DATA
HTTP请求数据
--data-file=PATH 包含HTTP请求数据的文件
-H HEADERS, --header=HEADERS
HTTP请求头,可以使用多个标志
--header-file=PATH 包含HTTP请求头的文件
-F, --follow-redirects
跟随HTTP重定向
--random-agent 为每个请求选择一个随机用户代理
--auth=CREDENTIAL 认证凭证(例如user:password或bearer token)
--auth-type=TYPE 认证类型(basic, digest, bearer, ntlm, jwt, oauth2)
--cert-file=PATH 包含客户端证书的文件
--key-file=PATH 包含客户端证书私钥的文件(未加密)
--user-agent=USER_AGENT
--cookie=COOKIE
连接设置:
--timeout=TIMEOUT 连接超时
--delay=DELAY 请求之间的延迟
--proxy=PROXY 代理URL(HTTP/SOCKS),可以使用多个标志
--proxy-file=PATH 包含代理服务器的文件
--proxy-auth=CREDENTIAL
代理认证凭证
--replay-proxy=PROXY
用找到的路径重放的代理
--tor 使用Tor网络作为代理
--scheme=SCHEME 原始请求的方案或URL中没有方案时的方案(默认:自动检测)
--max-rate=RATE 每秒最大请求数
--retries=RETRIES 失败请求的重试次数
--ip=IP 服务器IP地址
--interface=NETWORK_INTERFACE
要使用的网络接口
高级设置:
--crawl 爬取响应中的新路径
查看设置:
--full-url 输出中的完整URL(在安静模式下自动启用)
--redirects-history
显示重定向历史
--no-color 无彩色输出
-q, --quiet-mode 安静模式
输出设置:
-o PATH, --output=PATH
输出文件
--format=FORMAT 报告格式(可用:simple, plain, json, xml, md, csv, html, sqlite)
--log=PATH 日志文件
-
常用组合: dirsearch -u http://localhost:8000 -w word_list -r -f -O --full-url --crawl
---### 配置文件
❝
默认情况下,dirsearch 目录中的
config.ini
被用作配置文件,但您可以通过--config
标志或DIRSEARCH_CONFIG
环境变量选择其他文件。❞
❯ bat --no-pager /usr/share/dirsearch/config.ini
───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: /usr/share/dirsearch/config.ini
───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ # If you want to edit dirsearch default configurations, you can
2 │ # edit values in this file. Everything after `#` is a comment
3 │ # and won't be applied
4 │
5 │ [general]
6 │ threads = 25
7 │ recursive = False
8 │ deep-recursive = False
9 │ force-recursive = False
10 │ recursion-status = 200-399,401,403
11 │ max-recursion-depth = 0
12 │ exclude-subdirs = %%ff/,.;/,..;/,;/,./,../,%%2e/,%%2e%%2e/
13 │ random-user-agents = False
14 │ max-time = 0
15 │ exit-on-error = False
16 │ # subdirs = /,api/
17 │ # include-status = 200-299,401
18 │ # exclude-status = 400,500-999
19 │ # exclude-sizes = 0b,123gb
20 │ # exclude-texts = [
21 │ # "Not found",
22 │ # "404"
23 │ # ]
24 │ # exclude-regex = "^403$"
25 │ # exclude-redirect = "*/error.html"
26 │ # exclude-response = 404.html
27 │ # skip-on-status = 429,999
28 │
29 │ [dictionary]
30 │ default-extensions = php,aspx,jsp,html,js
31 │ force-extensions = False
32 │ overwrite-extensions = False
33 │ lowercase = False
34 │ uppercase = False
35 │ capitalization = False
36 │ # exclude-extensions = old,log
37 │ # prefixes = .,admin
38 │ # suffixes = ~,.bak
39 │ # wordlists = /path/to/wordlist1.txt,/path/to/wordlist2.txt
40 │
41 │ [request]
42 │ http-method = get
43 │ follow-redirects = False
44 │ # headers = [
45 │ # "Header1: Value",
46 │ # "Header2: Value"
47 │ # ]
48 │ # headers-file = /path/to/headers.txt
49 │ # user-agent = MyUserAgent
50 │ # cookie = SESSIONID=123
51 │
52 │ [connection]
53 │ timeout = 7.5
54 │ delay = 0
55 │ max-rate = 0
56 │ max-retries = 1
57 │ ## By disabling `scheme` variable, dirsearch will automatically identify the URI scheme
58 │ # scheme = http
59 │ # proxies = ["localhost:8080"]
60 │ # proxies-file = /path/to/proxies.txt
61 │ # replay-proxy = localhost:8000
62 │ # network-interface = eth0
63 │
64 │ [advanced]
65 │ crawl = False
66 │
67 │ [view]
68 │ full-url = False
69 │ quiet-mode = False
70 │ color = True
71 │ show-redirects-history = False
72 │
73 │ [output]
74 │ ## Support: plain, simple, json, xml, md, csv, html, sqlite, mysql, postgresql
75 │ report-format = plain
76 │ autosave-report = True
77 │ autosave-report-folder = reports/
78 │ # log-file = /path/to/dirsearch.log
79 │ # log-file-size = 50000000
───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
FFUF
-
项目地址:https://github.com/ffuf/ffuf
安装方式
-
brew install ffuf
-
go install github.com/ffuf/ffuf/v2@latest
-
git clone https://github.com/ffuf/ffuf ; cd ffuf ; go get ; go build
-
yay -S ffuf
-
apt install ffuf
-
https://github.com/ffuf/ffuf/releases/latest 直接下载对应系统二进制包运行
---### 参数选项
Fuzz Faster U Fool - v2.1.0-dev
HTTP 选项:
-H Header `"Name: Value"`,用冒号分隔。可以接受多个 -H 标志。
-X 使用的 HTTP 方法
-b Cookie 数据 `"NAME1=VALUE1; NAME2=VALUE2"`,用于复制为 curl 功能。
-cc 用于认证的客户端证书。还需要定义客户端密钥才能工作
-ck 用于认证的客户端密钥。还需要定义客户端证书才能工作
-d POST 数据
-http2 使用 HTTP2 协议(默认:false)
-ignore-body 不获取响应内容。(默认:false)
-r 跟随重定向(默认:false)
-raw 不对 URI 进行编码(默认:false)
-recursion 递归扫描。仅支持 FUZZ 关键字,URL (-u) 必须以它结尾。(默认:false)
-recursion-depth 最大递归深度。(默认:0)
-recursion-strategy 递归策略:“default” 基于重定向,“greedy” 对所有匹配项递归(默认:default)
-replay-proxy 使用此代理重放匹配请求。
-sni 目标 TLS SNI,不支持 FUZZ 关键字
-timeout HTTP 请求超时,以秒为单位。(默认:10)
-u 目标 URL
-x 代理 URL(SOCKS5 或 HTTP)。例如:<http://127.0.0.1:8080> 或 socks5://127.0.0.1:8080
常规选项:
-V 显示版本信息。(默认:false)
-ac 自动校准过滤选项(默认:false)
-acc 自定义自动校准字符串。可以多次使用。暗示 -ac
-ach 每个主机自动校准(默认:false)
-ack 自动校准关键字(默认:FUZZ)
-acs 自定义自动校准策略。可以多次使用。暗示 -ac
-c 彩色输出。(默认:false)
-config 从文件加载配置
-json JSON 输出,打印换行分隔的 JSON 记录(默认:false)
-maxtime 整个过程的最大运行时间,以秒为单位。(默认:0)
-maxtime-job 每个任务的最大运行时间,以秒为单位。(默认:0)
-noninteractive 禁用交互式控制台功能(默认:false)
-p 请求之间的 `延迟` 秒数,或随机延迟范围。例如 "0.1" 或 "0.1-2.0"
-rate 每秒请求数(默认:0)
-s 不打印其他信息(静默模式)(默认:false)
-sa 在所有错误情况下停止。暗示 -sf 和 -se。(默认:false)
-scraperfile 自定义爬取文件路径
-scrapers 活动爬取组(默认:all)
-se 在虚假错误时停止(默认:false)
-search 从 ffuf 历史中搜索 FFUFHASH 负载
-sf 当 > 95% 的响应返回 403 禁止时停止(默认:false)
-t 并发线程数。(默认:40)
-v 详细输出,打印带结果的完整 URL 和重定向位置(如果有)。(默认:false)
匹配选项:
-mc 匹配 HTTP 状态码,或 "all" 表示所有。(默认:200-299,301,302,307,401,403,405,500)
-ml 匹配响应中的行数
-mmode 匹配器集合运算符。可选:and, or(默认:or)
-mr 匹配正则表达式
-ms 匹配 HTTP 响应大小
-mt 匹配第一个响应字节的毫秒数,可以大于或小于。例如:>100 或 <100
-mw 匹配响应中的单词数
过滤选项:
-fc 从响应中过滤 HTTP 状态码。用逗号分隔的代码和范围列表
-fl 按响应中的行数过滤。用逗号分隔的行数和范围列表
-fmode 过滤器集合运算符。可选:and, or(默认:or)
-fr 过滤正则表达式
-fs 过滤 HTTP 响应大小。用逗号分隔的大小和范围列表
-ft 按第一个响应字节的毫秒数过滤,可以大于或小于。例如:>100 或 <100
-fw 按响应中的单词数过滤。用逗号分隔的单词数和范围列表
输入选项:
-D DirSearch 字典兼容模式。与 -e 标志一起使用。(默认:false)
-e 扩展名的逗号分隔列表。扩展 FUZZ 关键字。
-enc 关键字编码器,例如 'FUZZ:urlencode b64encode'
-ic 忽略字典注释(默认:false)
-input-cmd 生成输入的命令。使用此输入方法时需要 --input-num。覆盖 -w。
-input-num 要测试的输入数。与 --input-cmd 一起使用。(默认:100)
-input-shell 用于运行命令的 shell
-mode 多字典操作模式。可用模式:clusterbomb(多对多), pitchfork(一对一), sniper(默认:clusterbomb)
-request 包含原始 http 请求的文件
-request-proto 与原始请求一起使用的协议(默认:https)
-w 字典文件路径和(可选)关键字用冒号分隔。例如 '/path/to/wordlist:KEYWORD'
输出选项:
-debug-log 将所有内部日志记录写入指定文件。
-o 将输出写入文件
-od 存储匹配结果的目录路径。
-of 输出文件格式。可用格式:json, ejson, html, md, csv, ecsv(或 'all' 表示所有格式)(默认:json)
-or 如果没有结果,则不创建输出文件(默认:false)
示例用法:
从 wordlist.txt 模糊测试文件路径,匹配所有响应,但过滤掉内容大小为 42 的响应。
彩色,详细输出。
ffuf -w wordlist.txt -u <https://example.org/FUZZ> -mc all -fs 42 -c -v
模糊测试 Host 头,匹配 HTTP 200 响应。
ffuf -w hosts.txt -u <https://example.org/> -H "Host: FUZZ" -mc 200
模糊测试 POST JSON 数据。匹配所有不包含文本 "error" 的响应。
ffuf -w entries.txt -u <https://example.org/> -X POST -H "Content-Type: application/json" \
-d '{"name": "FUZZ", "anotherkey": "anothervalue"}' -fr "error"
模糊测试多个位置。仅匹配反映 "VAL" 关键字值的响应。彩色显示。
ffuf -w params.txt:PARAM -w values.txt:VAL -u <https://example.org/?PARAM=VAL> -mr "VAL" -c
更多信息和示例:<https://github.com/ffuf/ffuf>
交互模式
❝
通过在 ffuf 执行期间按下
ENTER
,进程暂停,用户进入类似shell
的交互模式:可以重新配置参数选项❞
进入交互模式
键入 "help" 以获取命令列表,或按 ENTER 继续。
> help
可用命令:
afc [value] - 添加到状态码过滤器
fc [value] - (重新)配置状态码过滤器
afl [value] - 添加到行数过滤器
fl [value] - (重新)配置行数过滤器
afw [value] - 添加到单词数过滤器
fw [value] - (重新)配置单词数过滤器
afs [value] - 添加到大小过滤器
fs [value] - (重新)配置大小过滤器
aft [value] - 添加到时间过滤器
ft [value] - (重新)配置时间过滤器
rate [value] - 调整每秒请求的速率(当前:0)
queueshow - 显示任务队列
queuedel [number] - 删除队列中的任务
queueskip - 跳到下一个队列任务
restart - 重新启动并继续当前的 ffuf 任务
resume - 继续当前的 ffuf 任务(或:ENTER)
show - 显示当前任务的结果
savejson [filename] - 将当前匹配项保存到文件
help - 显示帮助信息
>
使用案例
-
ffuf -w wordlist.txt:MYCUSTOMKEYWORD -u 'https://ffuf.io.fi/MYCUSTOMKEYWORD’
单个字段 -
ffuf -w domains.txt:DOMAIN -w wordlist.txt:WORD -u 'https://DOMAIN/WORD’
多个字段
-
ffuf -w wordlist.txt -request raw_req.txt
通过请求文件爆破 -
ffuf -w /path/to/wordlist -u https://target/FUZZ
目录爆破 -
ffuf -w /path/to/wordlist -u https://FUZZ.target.com
子域名爆破 -
ffuf -w /path/to/wordlist -u https://target/FUZZ -e .bak,.php,.txt
文件后缀爆破 -
ffuf -w /path/to/vhost/wordlist -u https://target -H "Host: FUZZ" -fs 4242
虚拟主机爆破 -
ffuf -w /path/to/paramnames.txt -u https://target/script.php?FUZZ=FUZZ -fs 4242
参数爆破 -
ffuf -w /path/to/postdata.txt -X POST -d "username=admin&password=FUZZ" -u https://target/login.php -fc 401
post 数据爆破 -
ffuf -u https://codingo.io/FUZZ -w ./wordlist -recursion
扫描子目录 -
seq 1 1000 | ffuf -w - -u http://ffuf.me/cd/pipes/user?id=FUZZ
管道,可配合加密各种操作 -
ffuf -w word_list -u http://127.0.0.1:8000/FUZZ -enc FUZZ:b64encode
字典内容编码
「Gobuster」
-
项目地址:https://github.com/OJ/gobuster
安装
-
docker pull [ghcr.io/oj/gobuster:latest](http://ghcr.io/oj/gobuster:latest)
docker -
go install [github.com/OJ/gobuster/v3@latest](http://github.com/OJ/gobuster/v3@latest)
golang -
yay -S gobuster
arch -
apt install gobuster
kali/debian 等 -
brew install gobuster
mac 等 -
winget install gobuster
windows
参数选项
❝
「主参数选项(全局)」
❞
❯ gobuster version
3.6
❯ gobuster --帮助
用法:
gobuster [命令]
可用命令:
completion 为指定的 shell 生成自动补全脚本
dir 使用目录/文件枚举模式
dns 使用 DNS 子域名枚举模式
fuzz 使用模糊测试模式。在 URL、Headers 和请求体中替换关键字 FUZZ
gcs 使用 gcs 存储桶枚举模式
help 关于任何命令的帮助
s3 使用 aws 存储桶枚举模式
tftp 使用 TFTP 枚举模式
version 显示当前版本
vhost 使用 VHOST 枚举模式(你最可能想用 IP 地址作为 URL 参数)
标志:
--debug 启用调试输出
--delay 持续时间 每个线程在请求之间等待的时间(例如 1500ms)
-h, --help 显示帮助
--no-color 禁用彩色输出
--no-error 不显示错误
-z, --no-progress 不显示进度
-o, --output 字符串 写入结果的输出文件(默认为 stdout)
-p, --pattern 字符串 包含替换模式的文件
-q, --quiet 不打印横幅和其他噪音
-t, --threads 整数 并发线程数(默认 10)
-v, --verbose 详细输出(错误)
-w, --wordlist 字符串 字典路径。设置为 - 使用 STDIN。
--wordlist-offset 整数 从字典中的给定位置恢复(默认为 0)
使用 "gobuster [命令] --help" 获取更多关于命令的信息。
-
「常用参数」: gobuster -q -w wordlists/rockyou.txt -t 1
❝
dir
参数选项❞
使用目录/文件枚举模式
用法:
gobuster dir [参数]
参数:
-f, --add-slash 在每个请求后追加 /
--client-cert-p12 string 用于 TLS 客户端证书的 p12 文件
--client-cert-p12-password string p12 文件的密码
--client-cert-pem string 用于可选 TLS 客户端证书的 PEM 格式公钥
--client-cert-pem-key string 用于可选 TLS 客户端证书的 PEM 格式私钥(此密钥不需要密码)
-c, --cookies string 请求中使用的 Cookies
-d, --discover-backup 通过追加多个备份扩展名也搜索备份文件
--exclude-length string 排除以下内容长度(完全忽略状态)。多个长度可以用逗号分隔,并支持像 203-206 这样的范围
-e, --expanded 扩展模式,打印完整 URL
-x, --extensions string 要搜索的文件扩展名
-X, --extensions-file string 从文件中读取要搜索的文件扩展名
-r, --follow-redirect 跟随重定向
-H, --headers stringArray 指定 HTTP 头,-H 'Header1: val1' -H 'Header2: val2'
-h, --help dir 的帮助信息
--hide-length 在输出中隐藏主体的长度
-m, --method string 使用以下 HTTP 方法(默认 "GET")
--no-canonicalize-headers 不规范化 HTTP 头名称。如果设置,头名称将按原样发送。
-n, --no-status 不打印状态代码
-k, --no-tls-validation 跳过 TLS 证书验证
-P, --password string 基本认证的密码
--proxy string 用于请求的代理 [http(s)://host:port] 或 [socks5://host:port]
--random-agent 使用随机的用户代理字符串
--retry 请求超时时是否重试
--retry-attempts int 超时请求时的重试次数(默认 3 次)
-s, --status-codes string 正面状态代码(如果设置,将被 status-codes-blacklist 重写)。还可以处理范围,如 200,300-400,404。
-b, --status-codes-blacklist string 负面状态代码(如果设置,将重写状态代码)。还可以处理范围,如 200,300-400,404。 (默认 "404")
--timeout duration HTTP 超时(默认 10 秒)
-u, --url string 目标 URL
-a, --useragent string 设置用户代理字符串(默认 "gobuster/3.6")
-U, --username string 基本认证的用户名
全局参数:
--debug 启用调试输出
--delay duration 各线程在请求之间等待的时间(例如 1500 毫秒)
--no-color 禁用颜色输出
--no-error 不显示错误
-z, --no-progress 不显示进度
-o, --output string 输出结果的文件(默认为标准输出)
-p, --pattern string 包含替换模式的文件
-q, --quiet 不打印横幅和其他信息
-t, --threads int 并发线程数(默认 10)
-v, --verbose 详细输出(错误)
-w, --wordlist string 单词列表的路径。设为 - 以使用标准输入。
--wordlist-offset int 从单词列表中的给定位置恢复(默认为 0)
-
「常用参数组合」: gobuster dir -e -r -x wocao,txt,php --random-agent -w word_list -u http://localhost:8000/
❝
dns
参数选项❞
使用 DNS 子域枚举模式
用法:
gobuster dns [标志]
标志:
-d, --domain string 目标域名
-h, --help 帮助信息
--no-fqdn 不自动在域名后添加点 "**."**,因此解析器将使用 DNS 搜索域
-r, --resolver string 使用自定义 DNS 服务器(格式为 server.com 或 server.com:port)
-c, --show-cname 显示 CNAME 记录(不能与 '-i' 选项同时使用)
-i, --show-ips 显示 IP 地址
--timeout duration DNS 解析器超时(默认 1 秒)
--wildcard 当发现通配符时强制继续操作
全局标志:
--debug 启用调试输出
--delay duration 每个线程在请求之间等待的时间(例如 1500 毫秒)
--no-color 禁用彩色输出
--no-error 不显示错误
-z, --no-progress 不显示进度
-o, --output string 输出文件以写入结果(默认为 stdout)
-p, --pattern string 包含替换模式的文件
-q, --quiet 不打印横幅和其他噪音
-t, --threads int 并发线程数(默认 10)
-v, --verbose 详细输出(错误信息)
-w, --wordlist string 字典文件路径。设置为 - 以使用标准输入(STDIN)。
--wordlist-offset int 从字典中的指定位置恢复(默认 0)
-
常用参数组合: gobuster dns -q -i -w wordlists/subdomains-spanish.txt -d target.com
❝
fuzz
参数选项❞
使用模糊测试模式。替换 URL、头部和请求正文中的关键词 FUZZ。
用法:
gobuster fuzz [标志]
标志:
-B, --body string 请求体
--client-cert-p12 string 用于 TLS 客户端证书的 p12 文件
--client-cert-p12-password string p12 文件的密码
--client-cert-pem string 可选 TLS 客户端证书的 PEM 格式公钥
--client-cert-pem-key string 可选 TLS 客户端证书的 PEM 格式私钥(此密钥无需密码)
-c, --cookies string 请求中使用的 Cookies
--exclude-length string 排除以下内容长度(完全忽略状态)。可以用逗号分隔多个长度,也支持范围,如 203-206
-b, --excludestatuscodes string 排除的状态码。也可以处理范围,如 200,300-400,404。
-r, --follow-redirect 跟随重定向
-H, --headers stringArray 指定 HTTP 头部,格式为 -H 'Header1: val1' -H 'Header2: val2'
-h, --help 显示帮助信息
-m, --method string 使用以下 HTTP 方法(默认 "GET")
--no-canonicalize-headers 不规范化 HTTP 头部名称。如果设置该选项,头部名称将原样发送。
-k, --no-tls-validation 跳过 TLS 证书验证
-P, --password string 基本认证的密码
--proxy string 请求中使用的代理 [http(s)://host:port] 或 [socks5://host:port]
--random-agent 使用随机的 User-Agent 字符串
--retry 请求超时后是否重试
--retry-attempts int 超时后重试的次数(默认 3)
--timeout duration HTTP 超时(默认 10s)
-u, --url string 目标 URL
-a, --useragent string 设置 User-Agent 字符串(默认 "gobuster/3.6")
-U, --username string 基本认证的用户名
全局标志:
--debug 启用调试输出
--delay duration 每个线程在请求之间等待的时间(例如 1500ms)
--no-color 禁用彩色输出
--no-error 不显示错误
-z, --no-progress 不显示进度
-o, --output string 输出结果的文件(默认为标准输出)
-p, --pattern string 包含替换模式的文件
-q, --quiet 不打印横幅和其他噪音
-t, --threads int 并发线程数(默认 10)
-v, --verbose 详细输出(错误)
-w, --wordlist string 字典路径。设置为 - 以使用标准输入。
--wordlist-offset int 从字典中的给定位置恢复(默认为 0)
-
常用参数组合: gobuster fuzz --url [https://example.com/?FUZZ=](https://example.com/?FUZZ=value)FUZZ --wordlist path/to/file
❝
gcs
参数选项❞
使用 GCS 存储桶枚举模式
用法:
gobuster gcs [标志]
标志:
--client-cert-p12 string 用于 TLS 客户端证书的 p12 文件
--client-cert-p12-password string p12 文件的密码
--client-cert-pem string 用于可选 TLS 客户端证书的 PEM 格式公钥
--client-cert-pem-key string 可选 TLS 客户端证书的 PEM 格式私钥(该密钥不需要密码)
-h, --help gcs 的帮助
-m, --maxfiles int 列出存储桶时最多列出文件数(仅在详细模式下显示)(默认 5)
-k, --no-tls-validation 跳过 TLS 证书验证
--proxy string 用于请求的代理 [http(s)://host:port] 或 [socks5://host:port]
--random-agent 使用随机的 User-Agent 字符串
--retry 在请求超时时应重试
--retry-attempts int 请求超时重试的次数(默认 3)
--timeout duration HTTP 超时(默认 10秒)
-a, --useragent string 设置 User-Agent 字符串(默认 "gobuster/3.6")
全局标志:
--debug 启用调试输出
--delay duration 每个线程在请求之间等待的时间(例如 1500毫秒)
--no-color 禁用颜色输出
--no-error 不显示错误
-z, --no-progress 不显示进度
-o, --output string 输出文件以写入结果(默认为 stdout)
-p, --pattern string 包含替换模式的文件
-q, --quiet 不打印横幅和其他噪声
-t, --threads int 并发线程数(默认 10)
-v, --verbose 详细输出(错误)
-w, --wordlist string 单词列表的路径。设置为 - 以使用标准输入。
--wordlist-offset int 从单词列表中的给定位置恢复(默认为 0)
-
例如: gobuster gcs -w bucket-names.txt
❝
s3
参数选项❞
使用 AWS 存储桶枚举模式
用法:
gobuster s3 [标志]
标志:
--client-cert-p12 string 用于 TLS 客户端证书的 p12 文件
--client-cert-p12-password string p12 文件的密码
--client-cert-pem string 用于可选 TLS 客户端证书的 PEM 格式公钥
--client-cert-pem-key string 用于可选 TLS 客户端证书的 PEM 格式私钥(此密钥不需要密码)
-h, --help s3 的帮助信息
-m, --maxfiles int 列出存储桶时最大文件数(仅在详细模式下显示)(默认值 5)
-k, --no-tls-validation 跳过 TLS 证书验证
--proxy string 请求使用的代理 [http(s)://host:port] 或 [socks5://host:port]
--random-agent 使用随机的 User-Agent 字符串
--retry 请求超时时是否重试
--retry-attempts int 请求超时时重试的次数(默认 3)
--timeout duration HTTP 超时(默认 10 秒)
-a, --useragent string 设置 User-Agent 字符串(默认 "gobuster/3.6")
全局标志:
--debug 启用调试输出
--delay duration 每个线程在请求之间等待的时间(例如 1500 毫秒)
--no-color 禁用颜色输出
--no-error 不显示错误
-z, --no-progress 不显示进度
-o, --output string 输出文件以写入结果(默认输出到 stdout)
-p, --pattern string 包含替换模式的文件
-q, --quiet 不打印横幅和其他噪音
-t, --threads int 并发线程数(默认 10)
-v, --verbose 详细输出(错误)
-w, --wordlist string 单词列表的路径。设置为 - 使用 STDIN。
--wordlist-offset int 从单词列表中的给定位置恢复(默认值 0)
-
例如: gobuster s3 -w bucket-names.txt
❝
tftp
参数选项❞
使用 TFTP 枚举模式
用法:
gobuster tftp [标志]
标志:
-h, --help 帮助信息
-s, --server string 目标 TFTP 服务器
--timeout duration TFTP 超时(默认 1s)
全局标志:
--debug 启用调试输出
--delay duration 每个线程在请求之间等待的时间(例如 1500ms)
--no-color 禁用彩色输出
--no-error 不显示错误
-z, --no-progress 不显示进度
-o, --output string 输出文件以写入结果(默认输出到标准输出)
-p, --pattern string 包含替换模式的文件
-q, --quiet 不打印横幅和其他杂音
-t, --threads int 并发线程数(默认 10)
-v, --verbose 详细输出(错误信息)
-w, --wordlist string 字典文件的路径。设置为 - 使用标准输入。
--wordlist-offset int 从字典文件的给定位置恢复(默认 0)
-
例如: gobuster tftp -s tftp.example.com -w common-filenames.txt
❝
vhost
模式❞
使用 VHOST 枚举模式(您可能希望将 IP 地址用作 URL 参数)
用法:
gobuster vhost [标志]
标志:
--append-domain 将 URL 的主域附加到字典中的单词。否则,需要在字典中指定完全合格的域名。
--client-cert-p12 string 用于选项 TLS 客户端证书的 p12 文件
--client-cert-p12-password string p12 文件的密码
--client-cert-pem string 用于可选 TLS 客户端证书的 PEM 格式公钥
--client-cert-pem-key string 用于可选 TLS 客户端证书的 PEM 格式私钥(该密钥不需要密码)
-c, --cookies string 要用于请求的 Cookies
--domain string 使用 IP 地址作为 URL 时要附加的域名。如果为空且您指定了基于域名的 URL,则从 URL 中提取主机名
--exclude-length string 排除以下内容长度(完全忽略状态)。您可以用逗号分隔多个长度,也支持如 203-206 的范围
-r, --follow-redirect 跟随重定向
-H, --headers stringArray 指定 HTTP 头,-H 'Header1: val1' -H 'Header2: val2'
-h, --help vhost 的帮助信息
-m, --method string 使用以下 HTTP 方法(默认 "GET")
--no-canonicalize-headers 不规范化 HTTP 头名称。如果设置了,头名称将按原样发送。
-k, --no-tls-validation 跳过 TLS 证书验证
-P, --password string 用于基本身份验证的密码
--proxy string 请求使用的代理 [http(s)://host:port] 或 [socks5://host:port]
--random-agent 使用随机 User-Agent 字符串
--retry 在请求超时时应重试
--retry-attempts int 请求超时重试的次数(默认 3 次)
--timeout duration HTTP 超时(默认 10 秒)
-u, --url string 目标 URL
-a, --useragent string 设置 User-Agent 字符串(默认 "gobuster/3.6")
-U, --username string 基本身份验证的用户名
全局标志:
--debug 启用调试输出
--delay duration 每个线程在请求之间等待的时间(例如,1500 毫秒)
--no-color 禁用彩色输出
--no-error 不显示错误
-z, --no-progress 不显示进度
-o, --output string 输出结果到的文件(默认为标准输出)
-p, --pattern string 包含替换模式的文件
-q, --quiet 不打印横幅和其他杂音
-t, --threads int 并发线程数量(默认 10)
-v, --verbose 详细输出(错误信息)
-w, --wordlist string 字典的路径。设置为 - 以使用标准输入。
--wordlist-offset int 从字典中的给定位置恢复(默认 0)
-
例如: gobuster vhost -u https://mysite.com -w common-vhosts.txt
Feroxbuster
-
项目地址:https://github.com/epi052/feroxbuster
安装方式
-
yay -S blackarch/feroxbuster
-
brew install feroxbuster
-
apt install feroxbuster
-
choco install feroxbuster
-
cargo install feroxbuster
参数选项
-
feroxbuster -h
feroxbuster 2.10.4
快速、简单的递归内容发现工具。
用法:feroxbuster [选项]
选项:
-h, --help 打印帮助信息(使用 '--help' 查看更多)
-V, --version 打印版本信息
目标选择:
-u, --url <URL> 目标 URL(必需,除非使用 [--stdin || --resume-from])
--stdin 从 STDIN 读取 URL
--resume-from <STATE_FILE> 从部分完成的扫描中恢复的状态文件(例如:--resume-from ferox-1606586780.state)
复合设置:
--burp 将 --proxy 设置为 http://127.0.0.1:8080,并将 --insecure 设置为 true
--burp-replay 将 --replay-proxy 设置为 http://127.0.0.1:8080,并将 --insecure 设置为 true
--smart 将 --auto-tune、--collect-words 和 --collect-backups 设置为 true
--thorough 使用与 --smart 相同的设置,并将 --collect-extensions 设置为 true
代理设置:
-p, --proxy <PROXY> 用于请求的代理(例如:http(s)://host:port, socks5(h)://host:port)
-P, --replay-proxy <REPLAY_PROXY> 仅通过重放代理发送未过滤的请求,而不是所有请求
-R, --replay-codes <REPLAY_CODE>... 找到时通过重放代理发送的状态码(默认:--status-codes 值)
请求设置:
-a, --user-agent <USER_AGENT> 设置用户代理(默认:feroxbuster/2.10.4)
-A, --random-agent 使用随机用户代理
-x, --extensions <FILE_EXTENSION>... 要搜索的文件扩展名(例如:-x php -x pdf js);如果输入以 @ 开头,则从文件中读取值(例如:@ext.txt)
-m, --methods <HTTP_METHODS>... 应发送哪些 HTTP 请求方法(默认:GET)
--data <DATA> 请求体;如果输入以 @ 开头,则可以从文件中读取数据(例如:@post.bin)
-H, --headers <HEADER>... 指定每个请求中使用的 HTTP 头(例如:-H Header:val -H 'stuff: things')
-b, --cookies <COOKIE>... 指定每个请求中使用的 HTTP cookie(例如:-b stuff=things)
-Q, --query <QUERY>... 请求的 URL 查询参数(例如:-Q token=stuff -Q secret=key)
-f, --add-slash 在每个请求的 URL 末尾添加 /
请求过滤:
--dont-scan <URL>... 要排除在递归/扫描中的 URL 或正则表达式模式
响应过滤:
-S, --filter-size <SIZE>... 过滤出特定大小的消息(例如:-S 5120 -S 4927,1970)
-X, --filter-regex <REGEX>... 通过在响应的主体/头部上进行正则表达式匹配过滤消息(例如:-X '^ignore me$')
-W, --filter-words <WORDS>... 过滤出特定字数的消息(例如:-W 312 -W 91,82)
-N, --filter-lines <LINES>... 过滤出特定行数的消息(例如:-N 20 -N 31,30)
-C, --filter-status <STATUS_CODE>... 过滤状态码(拒绝列表)(例如:-C 200 -C 401)
--filter-similar-to <UNWANTED_PAGE>... 过滤出与给定页面相似的页面(例如:--filter-similar-to http://site.xyz/soft404)
-s, --status-codes <STATUS_CODE>... 包含的状态码(允许列表)(默认:所有状态码)
客户端设置:
-T, --timeout <SECONDS> 客户端请求超时之前的秒数(默认:7)
-r, --redirects 允许客户端跟随重定向
-k, --insecure 禁用客户端的 TLS 证书验证
--server-certs <PEM|DER>... 为未知证书的服务器添加自定义根证书
--client-cert <PEM> 添加用于双向身份验证(mTLS)的 PEM 编码证书
--client-key <PEM> 添加用于双向身份验证(mTLS)的 PEM 编码私钥
扫描设置:
-t, --threads <THREADS> 并发线程数(默认:50)
-n, --no-recursion 不进行递归扫描
-d, --depth <RECURSION_DEPTH> 最大递归深度,深度为 0 表示无限递归(默认:4)
--force-recursion 强制对所有“发现”的端点进行递归尝试(仍然遵循递归深度)
--dont-extract-links 不从响应主体中提取链接(html、javascript 等...)
-L, --scan-limit <SCAN_LIMIT> 限制总的并发扫描数量(默认:0,即无限制)
--parallel <PARALLEL_SCANS> 运行并行的 feroxbuster 实例(每个通过 stdin 传递的 URL 一个子进程)
--rate-limit <RATE_LIMIT> 限制每秒请求数量(每个目录)(默认:0,即无限制)
--time-limit <TIME_SPEC> 限制所有扫描的总运行时间(例如:--time-limit 10m)
-w, --wordlist <FILE> 单词列表的路径或 URL
--auto-tune 当遇到过多错误时自动降低扫描速率
--auto-bail 当遇到过多错误时自动停止扫描
-D, --dont-filter 不自动过滤通配符响应
动态收集设置:
-E, --collect-extensions 自动发现扩展名并将其添加到 --extensions(除非在 --dont-collect 中)
-B, --collect-backups [<collect_backups>...] 自动请求“发现” URL 可能的备份扩展名(默认:~,.bak,.bak2,.old,.1)
-g, --collect-words 自动从响应中发现重要单词并将其添加到单词列表
-I, --dont-collect <FILE_EXTENSION>... 在收集扩展名时要忽略的文件扩展名(仅与 --collect-extensions 一起使用)
输出设置:
-v, --verbosity... 增加详细级别(使用 -vv 或更多以获得更大效果。[注意] 4 个 -v 可能太多)
--silent 仅打印 URL(或 JSON 使用 --json)+ 关闭日志记录(适合将 URL 列表传递给其他命令)
-q, --quiet 隐藏进度条和横幅(适合带有通知的 tmux 窗口)
--json 将 JSON 日志输出到 --output 和 --debug-log,而不是普通文本
-o, --output <FILE> 输出文件以写入结果(使用 --json 以获取 JSON 条目)
--debug-log <FILE> 输出文件以写入日志条目(使用 --json 以获取 JSON 条目)
--no-state 禁用状态输出文件 (*.state)
更新设置:
-U, --update 更新 feroxbuster 到最新版本
-
常用参数组合: feroxbuster -u http://localhost:8000/ -A -r -E -g -q --force-recursion -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt
-
「默认字典」 /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt
配置文件
# Example configuration for feroxbuster
#
# If you wish to provide persistent settings to feroxbuster, rename this file to ferox-config.toml and make sure
# it resides in the same directory as the feroxbuster binary.
#
# After that, uncomment any line to override the default value provided by the binary itself.
#
# Any setting used here can be overridden by the corresponding command line option/argument
#
# wordlist = "/wordlists/seclists/Discovery/Web-Content/raft-medium-directories.txt"
# status_codes = [200, 500]
# filter_status = [301]
# threads = 1
# timeout = 5
# proxy = "http://127.0.0.1:8080"
# replay_proxy = "http://127.0.0.1:8081"
# replay_codes = [200, 302]
# verbosity = 1
# parallel = 8
# scan_limit = 6
# rate_limit = 250
# quiet = true
# silent = true
# auto_tune = true
# auto_bail = true
# json = true
# output = "/targets/ellingson_mineral_company/gibson.txt"
# debug_log = "/var/log/find-the-derp.log"
# user_agent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0"
# random_agent = false
# redirects = true
# insecure = true
# extensions = ["php", "html"]
# methods = ["GET", "POST"]
# data = [11, 12, 13, 14, 15]
# url_denylist = ["http://dont-scan.me", "https://also-not.me"]
# regex_denylist = ["/deny.*"]
# no_recursion = true
# add_slash = true
# stdin = true
# dont_filter = true
# extract_links = true
# depth = 1
# filter_size = [5174]
# filter_regex = ["^ignore me$"]
# filter_similar = ["https://somesite.com/soft404"]
# filter_word_count = [993]
# filter_line_count = [35, 36]
# queries = [["name","value"], ["rick", "astley"]]
# save_state = false
# time_limit = "10m"
# headers can be specified on multiple lines or as an inline table
#
# inline example
# headers = {"stuff" = "things"}
#
# multi-line example
# note: if multi-line is used, all key/value pairs under it belong to the headers table until the next table
# is found or the end of the file is reached
#
# [headers]
# stuff = "things"
# more = "headers"
字典列表
-
https://github.com/six2dez/OneListForAll -
https://github.com/danielmiessler/SecLists
Refences 😜
-
https://github.com/maurosoria/dirsearch -
https://github.com/ffuf/ffuf -
http://ffuf.me/ ffuf 练习靶场 -
https://codingo.io/tools/ffuf/bounty/2020/09/17/everything-you-need-to-know-about-ffuf.html#other-sources---credit ffuf 可参考教程 -
https://epi052.github.io/feroxbuster-docs/docs/overview/
原文始发于微信公众号(人遁安全):暗黑领域的探索:终极枚举指南!!!
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论