| name | katana-crawl |
| description | 使用 katana 进行 Web 爬虫和 URL 发现。当需要爬取目标网站的所有页面和端点、发现隐藏的 API 路径、JavaScript 中的端点、表单提取时使用。katana 是 ProjectDiscovery 出品的下一代爬虫框架,支持标准模式和 Headless 浏览器模式,能解析 JavaScript 发现动态端点。任何涉及 Web 爬虫、URL 发现、JS 端点提取、表单发现、站点地图的场景都应使用此技能 |
| metadata | {"tags":"katana,crawl,spider,爬虫,URL发现,JS解析,endpoint,表单,projectdiscovery,headless","category":"tool"} |
katana Web 爬虫方法论
katana 是 ProjectDiscovery 出品的下一代 Web 爬虫框架。核心优势:JavaScript 解析(发现动态端点)+ Headless 模式(渲染 SPA)+ 管道友好 + 表单自动填充。
项目地址:https://github.com/projectdiscovery/katana
Phase 1: 基本爬取
katana -u http://target.com
katana -u http://target.com -d 5
katana -u http://target.com -silent
katana -u http://target.com -silent -o urls.txt
Phase 2: JavaScript 解析(关键能力)
现代 Web 应用大量使用 JS 框架,传统爬虫无法发现 JS 中硬编码的 API 端点:
katana -u http://target.com -jc
katana -u http://target.com -jsluice
katana -u http://target.com -headless
katana -u http://target.com -headless -system-chrome
Phase 3: 批量爬取
katana -list urls.txt -silent
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
katana -u http://target.com -mr "api|admin|login" -silent
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
katana -u http://target.com -H "Cookie: session=abc123"
katana -u http://target.com -proxy http://127.0.0.1:8080
katana -u http://target.com -jsonl -o results.jsonl
katana -u http://target.com -known-files all -d 3
katana -u http://target.com -tech-detect
katana -u http://target.com -headless -xhr-extraction
Phase 7: 管道集成
katana -u http://target.com -jc -silent | nuclei -severity critical,high
katana -u http://target.com -jc -silent -em js | while read url; do
curl -s "$url" | grep -iE "api_key|password|secret|token"
done
katana -u http://target.com -jc -silent | grep "?" | sort -u > params.txt
subfinder -d target.com -silent | httpx -silent | katana -jc -silent | nuclei
爬取策略选择
| 场景 | 策略 | 命令 |
|---|
| 快速发现(比赛) | 浅爬 + JS | katana -u URL -d 2 -jc -silent |
| 全面爬取 | 深爬 + Headless | katana -u URL -d 5 -headless -jc |
| API 端点发现 | JS 解析 + 过滤 | katana -u URL -jc -em js,json -silent |
| 认证后爬取 | 带 Cookie | katana -u URL -H "Cookie: ..." -jc |
| SPA 应用 | Headless 必须 | katana -u URL -headless -system-chrome |