ワンクリックで
web-surface-mapping
用于梳理授权 Web 目标的页面、接口、路径、参数和入口点。适合在已有 HTTP 服务列表后,组合 httpx、katana、ffuf、feroxbuster 和少量 nuclei 检查来整理 Web 暴露面。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
用于梳理授权 Web 目标的页面、接口、路径、参数和入口点。适合在已有 HTTP 服务列表后,组合 httpx、katana、ffuf、feroxbuster 和少量 nuclei 检查来整理 Web 暴露面。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
用于授权范围内的资产发现、DNS 验证、端口发现、HTTP 存活探测和基础指纹识别。适合用户提供域名、IP、CIDR、主机列表或已有扫描结果时使用。会指导智能体组合 subfinder、amass、dnsx、naabu、nmap、masscan、httpx、whatweb、wafw00f。
用于扫描代码仓库、源码目录、文件系统和配置文件中的密钥、依赖漏洞、IaC 错误配置和常见安全问题。适合组合 gitleaks、trufflehog、semgrep-offline、semgrep、trivy 对项目进行本地安全检查。
用于漏洞研究、公开 PoC 线索检索、Exploit-DB 查询、Metasploit 模块查询、payload 选型研究和 Linux 本地提权线索判断。适合用户提供产品版本、CVE、服务指纹、扫描结果、系统版本或内核版本时使用。
用于对授权目标执行 Nuclei 模板检查并整理结果。适合已有 URL、主机列表、技术栈线索或 CVE 线索时使用。重点指导模板选择、速率控制、JSONL 输出、结果复核和后续验证。
为单目标或少量目标的深入渗透测试提供场景化方法论和判断线索。适合用户提供域名、URL、IP、CIDR、靶机地址、系统入口或已有扫描结果,并要求“测一下”“深入测试”“做黑盒测试”“开始渗透测试”“继续往下验证”等场景。帮助理解当前证据、选择高价值测试方向、串联专项技能、识别误区并判断何时从广度发现转向深入验证。
用于在授权目标上使用 sqlmap 验证疑似 SQL 注入。适合用户提供 URL、参数、原始 HTTP 请求、Nuclei 发现或手工测试线索时使用。默认采用低风险低强度参数,优先证明问题存在,不默认导出数据或执行系统命令。
| name | web-surface-mapping |
| description | 用于梳理授权 Web 目标的页面、接口、路径、参数和入口点。适合在已有 HTTP 服务列表后,组合 httpx、katana、ffuf、feroxbuster 和少量 nuclei 检查来整理 Web 暴露面。 |
这份技能提供理解 Web 暴露面的思路和常用工具组合。根据站点规模、登录态、技术栈和已有证据选择最有价值的部分,不必机械执行全部步骤。
把一组 Web 目标整理成可测试的入口清单:
asset-discovery 生成的 web_targets.txt。先确认:
Web 路径字典通常不是越大越好。单次任务中不要为了普通目录发现去下载大型字典。
默认策略:
seclists 和 wordlists。Web 路径发现主要使用镜像内置的 seclists 和 wordlists。这些字典通常不需要在单次任务中临时更新。
不要为了普通目录发现临时下载大型字典。
如果用户明确要求更大的字典,应先说明可能耗时更长,再选择已有大字典或用户提供的字典,而不是盲目从网络拉取。
这条路径从“哪些 URL 可达”逐步走向“有哪些可测试入口”。爬取、路径发现和模板检查是互补方法,可以按场景组合。
mkdir -p web/{input,raw,clean,final,notes}
准备 URL 列表:
cp recon/final/web_targets.txt web/input/urls.txt
或者手动写入:
cat > web/input/urls.txt <<'EOF'
https://example.com
EOF
httpx -l web/input/urls.txt \
-silent \
-status-code \
-title \
-tech-detect \
-follow-redirects \
-json \
-o web/raw/httpx.jsonl
提取存活 URL:
jq -r '.url' web/raw/httpx.jsonl \
| sort -u > web/clean/live_urls.txt
生成摘要:
jq -r '[.url, (.status_code|tostring), (.title // ""), ((.tech // [])|join(","))] | @tsv' \
web/raw/httpx.jsonl > web/final/live_urls.tsv
普通爬取优先:
katana -list web/clean/live_urls.txt \
-silent \
-jsonl \
-form-extraction \
-depth 2 \
-o web/raw/katana.jsonl
提取 URL:
jq -r '.request.endpoint // .url // empty' web/raw/katana.jsonl \
| sort -u > web/clean/katana_urls.txt
如果目标明显依赖前端渲染,再用 headless:
katana -list web/clean/live_urls.txt \
-silent \
-jsonl \
-headless \
-system-chrome-path /usr/bin/chromium \
-no-sandbox \
-form-extraction \
-depth 2 \
-o web/raw/katana_headless.jsonl
合并:
cat web/clean/live_urls.txt web/clean/katana_urls.txt web/raw/katana_headless.jsonl 2>/dev/null \
| grep -Eo 'https?://[^" ]+' \
| sort -u > web/clean/crawled_urls.txt
提取表单、提交入口和输入参数:
cat web/raw/katana.jsonl web/raw/katana_headless.jsonl 2>/dev/null \
| jq -c 'select((.response.forms // []) | length > 0) |
{source: .request.endpoint, forms: .response.forms}' \
| sort -u > web/final/forms_or_inputs.jsonl
先对少量目标或重点目标用 ffuf:
while read -r url; do
safe_name="$(echo "$url" | sed 's#[/:]#_#g')"
ffuf -u "$url/FUZZ" \
-w /usr/share/seclists/Discovery/Web-Content/common.txt \
-mc all \
-fc 404 \
-rate 50 \
-of json \
-o "web/raw/ffuf_${safe_name}.json" || true
done < web/clean/live_urls.txt
如果站点层级较多,且用户允许递归发现,再用 feroxbuster:
feroxbuster -u https://example.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-small-words.txt \
--rate-limit 50 \
--depth 2 \
--json \
-o web/raw/feroxbuster.json
从 URL 中提取带参数的接口:
cat web/clean/crawled_urls.txt 2>/dev/null \
| grep '?' \
| sort -u > web/final/parameterized_urls.txt
提取路径清单:
cat web/clean/crawled_urls.txt 2>/dev/null \
| sed -E 's#https?://[^/]+##' \
| cut -d'?' -f1 \
| sort -u > web/final/paths.txt
只对整理后的 URL 做轻量检查:
nuclei -l web/clean/live_urls.txt \
-t /root/nuclei-templates/http/exposures/ \
-severity info,low,medium,high,critical \
-jsonl \
-rate-limit 20 \
-o web/raw/nuclei_exposures.jsonl
cat web/clean/live_urls.txt web/clean/crawled_urls.txt 2>/dev/null \
| sort -u > web/final/discovered_urls.txt
适合确认 URL 存活、标题、状态码、技术栈。
httpx -l urls.txt -silent -status-code -title -tech-detect -follow-redirects -json -o httpx.jsonl
看结果时关注:
适合爬取链接、接口、JS 暴露端点。
katana -list urls.txt -silent -jsonl -form-extraction -depth 2 -o katana.jsonl
需要渲染:
katana -list urls.txt -silent -jsonl -headless -system-chrome-path /usr/bin/chromium -no-sandbox -form-extraction -depth 2 -o katana_headless.jsonl
要点:
适合路径、文件、参数位置 fuzz。
ffuf -u https://example.com/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/common.txt \
-mc all -fc 404 \
-rate 50 \
-of json -o ffuf.json
要点:
-rate 控制速率。适合递归目录发现。
feroxbuster -u https://example.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-small-words.txt \
--rate-limit 50 \
--depth 2 \
--json \
-o feroxbuster.json
要点:
入口清单的价值不在数量,而在于是否能帮助理解应用边界和选择下一条验证路径。