원클릭으로
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
要点:
入口清单的价值不在数量,而在于是否能帮助理解应用边界和选择下一条验证路径。