mcpField
K
katana-crawl

katana-crawl

github.com/wgpsecセキュリティ1.8k51 回インストール4 日前に更新
リポジトリ

katana-crawl について

セキュリティテスト向けの katana を使った Web クローリングガイドです。JavaScript のエンドポイント解析、ヘッドレスクロール、範囲設定、パイプ処理を通じて、動的ページや API の URL を見つけます。

主な機能

  1. 01JavaScript エンドポイント解析
  2. 02ヘッドレス描画とクロール
  3. 03複数ターゲットとパイプ入力
  4. 04URL フィルターとクロール範囲設定
  5. 05並列数、速度、認証の設定

活用シーン

  1. 01Web アプリの動的 API エンドポイントの発見
  2. 02SPA ページのクロールとリンク収集
  3. 03URL を絞り込んで他のツールへ渡す
  4. 04Cookie を使った認証ページのクロール

インストール

コマンドをコピーしてターミナルで実行します。

$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

コメント