mcpField
K
katana-crawl

katana-crawl

github.com/wgpsec安全1.8k51 次安装4 天前更新
代码仓库

关于 katana-crawl

基于 katana 的 Web 爬虫方法指南,面向安全测试人员。内容涵盖 JavaScript 端点解析、Headless 爬取、范围控制和管道处理,可用于发现动态页面与 API URL。

主要功能

  1. 01JavaScript 端点解析
  2. 02Headless 页面渲染与爬取
  3. 03批量目标及管道输入
  4. 04URL 过滤与爬取范围控制
  5. 05并发、速率及认证配置

适用场景

  1. 01发现 Web 应用中的动态 API 端点
  2. 02爬取 SPA 页面并提取链接
  3. 03筛选 URL 后将结果传给其他工具
  4. 04携带 Cookie 爬取认证页面

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wgpsec/aboutsecurity --skill katana-crawl

安装后在 Claude Code 中输入/katana-crawl确认已加载。

附带文件evals/evals.json

详细介绍

来自项目 README

katana Web 爬虫方法论

katana 是 ProjectDiscovery 出品的下一代 Web 爬虫框架。核心优势:JavaScript 解析(发现动态端点)+ Headless 模式(渲染 SPA)+ 管道友好 + 表单自动填充。

项目地址:https://github.com/projectdiscovery/katana

Phase 1: 基本爬取

# 爬取单个目标(默认深度 3)
katana -u http://target.com

# 指定爬取深度
katana -u http://target.com -d 5

# 静默输出(只显示 URL)
katana -u http://target.com -silent

# 输出到文件
katana -u http://target.com -silent -o urls.txt

Phase 2: JavaScript 解析(关键能力)

现代 Web 应用大量使用 JS 框架,传统爬虫无法发现 JS 中硬编码的 API 端点:

# 启用 JS 端点解析(推荐始终开启)
katana -u http://target.com -jc

# 启用 jsluice 深度 JS 解析(更全面,内存消耗大)
katana -u http://target.com -jsluice

# Headless 模式(渲染页面后爬取,适合 SPA/React/Vue)
katana -u http://target.com -headless

# Headless + 使用系统 Chrome
katana -u http://target.com -headless -system-chrome

Phase 3: 批量爬取

# 从文件读取目标
katana -list urls.txt -silent

# 从 stdin 管道
cat urls.txt | katana -silent

# 配合其他工具
subfinder -d target.com -silent | httpx -silent | katana -silent -jc

Phase 4: 输出过滤

# 只输出特定扩展名
katana -u http://target.com -em php,jsp,asp -silent

# 排除静态资源
katana -u http://target.com -ef png,jpg,css,gif,svg,woff -silent

# 正则匹配(只输出包含 api 的 URL)
katana -u http://target.com -mr "api|admin|login" -silent

# 正则过滤(排除包含 logout 的 URL)
katana -u http://target.com -fr "logout|static" -silent

# 提取表单元素
katana -u http://target.com -form-extraction -jsonl

Phase 5: 范围控制

# 限制在同一域名内(默认行为)
katana -u http://target.com

# 显示外部端点(不爬取,只显示)
katana -u http://target.com -display-out-scope

# 自定义范围(正则)
katana -u http://target.com -crawl-scope "target\.com|api\.target\.com"

# 排除特定路径
katana -u http://target.com -crawl-out-scope "logout|signout"

# 无范围限制(危险,慎用)
katana -u http://target.com -no-scope

Phase 6: 高级配置

# 限时爬取(比赛场景重要)
katana -u http://target.com -crawl-duration 60s

# 控制并发和速率
katana -u http://target.com -c 20 -rl 100

# 自定义 Header(带 Cookie 访问需要认证的页面)
katana -u http://target.com -H "Cookie: session=abc123"

# 使用代理
katana -u http://target.com -proxy http://127.0.0.1:8080

# JSONL 输出(包含完整请求信息)
katana -u http://target.com -jsonl -o results.jsonl

# 已知文件扫描(robots.txt, sitemap.xml)
katana -u http://target.com -known-files all -d 3

# 技术检测
katana -u http://target.com -tech-detect

# XHR 请求提取(Headless 模式)
katana -u http://target.com -headless -xhr-extraction

Phase 7: 管道集成

# 爬虫 → 漏洞扫描
katana -u http://target.com -jc -silent | nuclei -severity critical,high

# 爬虫 → 筛选 JS 文件 → 敏感信息提取
katana -u http://target.com -jc -silent -em js | while read url; do
  curl -s "$url" | grep -iE "api_key|password|secret|token"
done

# 爬虫 → 参数提取 → SQLi 测试
katana -u http://target.com -jc -silent | grep "?" | sort -u > params.txt

# 子域名 → 存活 → 爬虫 → 漏洞扫描(完整链)
subfinder -d target.com -silent | httpx -silent | katana -jc -silent | nuclei

爬取策略选择

场景策略命令
快速发现(比赛)浅爬 + JSkatana -u URL -d 2 -jc -silent
全面爬取深爬 + Headlesskatana -u URL -d 5 -headless -jc
API 端点发现JS 解析 + 过滤katana -u URL -jc -em js,json -silent
认证后爬取带 Cookiekatana -u URL -H "Cookie: ..." -jc
SPA 应用Headless 必须katana -u URL -headless -system-chrome

评论

支持 Markdown