mcpField
K
katana-crawl

katana-crawl

github.com/wgpsecSecurity1.8k51 installsUpdated 4d ago
Repository

About katana-crawl

A katana-based web crawling guide for security testers. It covers JavaScript endpoint parsing, headless crawling, scope controls, and pipelines to find URLs in dynamic pages and APIs.

Key features

  1. 01JavaScript endpoint parsing
  2. 02Headless rendering and crawling
  3. 03Batch targets and piped input
  4. 04URL filtering and crawl scope controls
  5. 05Concurrency, rate, and authentication options

Use cases

  1. 01Find dynamic API endpoints in web apps
  2. 02Crawl SPA pages and collect links
  3. 03Filter URLs before passing results to other tools
  4. 04Crawl authenticated pages with cookies

Install

Copy the command and run it in a terminal.

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

After installing, type/katana-crawlin Claude Code to confirm it loaded.

Bundled filesevals/evals.json

Details

From the project 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

Comments

Markdown supported