SuperAPI AI Directory

katana-crawl

General & other

View repository

Updated 10-16 06:52

About this skill

katana Web Crawling Methodology

katana is a next-generation web crawling framework by ProjectDiscovery. Core advantages:JavaScript Parsing(discovering dynamic endpoints) + Headless Mode(rendering SPAs) + Pipeline-friendly + Automatic form filling。

Project address:https://github.com/projectdiscovery/katana

Phase 1: Basic Crawling

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

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

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

katana -u http://target.com -silent -o urls.txt


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

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

```bash
# 启用 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: Batch Crawling

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

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

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

Phase 4: Output Filtering

# 只输出特定扩展名
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: Scope Control

# 限制在同一域名内(默认行为)
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: Advanced Configuration

# 限时爬取(比赛场景重要)
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: Pipeline Integration

# 爬虫 → 漏洞扫描
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

Crawling Strategy Selection

Scenario Strategy Command
Quick discovery (competition) Shallow crawl + JS katana -u URL -d 2 -jc -silent
Comprehensive crawling Deep crawl + Headless katana -u URL -d 5 -headless -jc
API endpoint discovery JS parsing + filtering katana -u URL -jc -em js,json -silent
Post-authentication crawling With Cookie katana -u URL -H "Cookie: ..." -jc
SPA application Headless required katana -u URL -headless -system-chrome