Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
katana — 下一代爬取与爬虫框架。 | Kitploit
工具/GitHubGitHub/projectdiscovery/katana
侦察信息收集Web安全渗透测试网络爬虫
GitHubprojectdiscovery/katana

katana

下一代爬取与爬虫框架。

查看仓库
17.3k1.2k4天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

katana

下一代爬取与爬虫框架

特性 • 安装 • 用法 • 范围 • 配置 • 过滤器 • 加入Discord

特性

image

  • 快速且完全可配置的网页爬取
  • 标准和无头模式
  • JavaScript解析/爬取
  • 可自定义的自动表单填写
  • 范围控制 - 预配置字段/正则
  • 知识库 - 机器学习页面类型/表单分类(自动下载模型)
  • 可自定义的输出 - 预配置字段
  • 输入 - STDIN、URL和LIST
  • 输出 - STDOUT、FILE和JSON

安装

katana需要Go 1.26+才能成功安装。如果遇到任何安装问题,我们建议尝试使用最新版本的Go,因为最低要求版本可能已更改。运行以下命令或从发布页面下载预编译的二进制文件。```console CGO_ENABLED=1 go install github.com/projectdiscovery/katana/cmd/katana@latest

root@kitploit:~
**安装/运行 katana- 的更多选项**

<details>
  <summary>Docker</summary>

> 要安装/更新 docker 到最新标签 -```sh
docker pull projectdiscovery/katana:latest

使用 docker 以标准模式运行 katana -```sh docker run projectdiscovery/katana:latest -u https://tesla.com

root@kitploit:~
> 使用docker以无头模式运行katana -```sh
docker run projectdiscovery/katana:latest -u https://tesla.com -system-chrome -headless
Ubuntu

建议安装以下前提条件 -```sh sudo apt update sudo apt install zip curl wget git snapd sudo snap refresh sudo snap install golang --classic

sudo install -d -m 0755 /etc/apt/keyrings curl -fsSL https://dl.google.com/linux/linux_signing_key.pub
| sudo gpg --dearmor -o /etc/apt/keyrings/google-chrome.gpg

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/google-chrome.gpg]
http://dl.google.com/linux/chrome/deb/ stable main"
| sudo tee /etc/apt/sources.list.d/google-chrome.list > /dev/null

sudo apt update sudo apt install google-chrome-stable

root@kitploit:~
> 安装 katana -```sh
go install github.com/projectdiscovery/katana/cmd/katana@latest

用法```console

katana -h

root@kitploit:~
这将显示该工具的帮助信息。以下是它支持的所有开关。```console
Katana is a fast crawler focused on execution in automation
pipelines offering both headless and non-headless crawling.

Usage:
  ./katana [flags]

Flags:
INPUT:
   -u, -list string[]     target url / list to crawl
   -resume string         resume scan using resume.cfg
   -e, -exclude string[]  exclude host matching specified filter ('cdn', 'private-ips', cidr, ip, regex)

CONFIGURATION:
   -r, -resolvers string[]       list of custom resolver (file or comma separated)
   -d, -depth int                maximum depth to crawl (default 3)
   -jc, -js-crawl                enable endpoint parsing / crawling in javascript file
   -jsl, -jsluice                enable jsluice parsing in javascript file (memory intensive)
   -ct, -crawl-duration value    maximum duration to crawl the target for (s, m, h, d) (default s)
   -kf, -known-files string      enable crawling of known files (all,robotstxt,sitemapxml), a minimum depth of 3 is required to ensure all known files are properly crawled.
   -mrs, -max-response-size int  maximum response size to read (default 4194304)
   -timeout int                  time to wait for request in seconds (default 10)
   -aff, -automatic-form-fill    enable automatic form filling (experimental)
   -fx, -form-extraction         extract form, input, textarea & select elements in jsonl output
   -retry int                    number of times to retry the request (default 1)
   -proxy string                 http/socks5 proxy to use
   -td, -tech-detect             enable technology detection
   -H, -headers string[]         custom header/cookie to include in all http request in header:value format (file)
   -config string                path to the katana configuration file
   -fc, -form-config string      path to custom form configuration file
   -flc, -field-config string    path to custom field configuration file
   -s, -strategy string          Visit strategy (depth-first, breadth-first) (default "depth-first")
   -iqp, -ignore-query-params    Ignore crawling same path with different query-param values
   -fsu, -filter-similar         filter crawling of similar looking URLs (e.g., /users/123 and /users/456)
   -fst, -filter-similar-threshold int  number of distinct values before a path position is treated as parameter (default 10)
   -tlsi, -tls-impersonate       enable experimental client hello (ja3) tls randomization
   -dr, -disable-redirects       disable following redirects (default false)
   -kb, -knowledge-base          enable knowledge base classification
   -kb-secrets                   enable secrets extractor in the knowledge base
   -kb-validate-secrets          validate detected secrets against their provider (sends live API calls)
   -kb-endpoints                 enable endpoints extractor (classifies REST/GraphQL/SOAP/XHR requests)
   -mdp, -max-domain-pages int   maximum number of pages to crawl per domain (default unlimited)

DEBUG:
   -health-check, -hc        run diagnostic check up
   -elog, -error-log string  file to write sent requests error log
   -pprof-server             enable pprof server

HEADLESS:
   -hl, -headless                    enable headless hybrid crawling (experimental)
   -sc, -system-chrome               use local installed chrome browser instead of katana installed
   -sb, -show-browser                show the browser on the screen with headless mode
   -ho, -headless-options string[]   start headless chrome with additional options
   -nos, -no-sandbox                 start headless chrome in --no-sandbox mode
   -cdd, -chrome-data-dir string     path to store chrome browser data
   -scp, -system-chrome-path string  use specified chrome browser for headless crawling
   -noi, -no-incognito               start headless chrome without incognito mode
   -cwu, -chrome-ws-url string       use chrome browser instance launched elsewhere with the debugger listening at this URL
   -xhr, -xhr-extraction             extract xhr request url,method in jsonl output
   -pls, -page-load-strategy string  page load strategy (heuristic, load, domcontentloaded, networkidle, none) (default "heuristic")
   -dwt, -dom-wait-time int          time in seconds to wait after page load when using domcontentloaded strategy (default 5)
   -csp, -captcha-solver-provider string  captcha solver provider (e.g. capsolver)
   -csk, -captcha-solver-key string       captcha solver provider api key

SCOPE:
   -cs, -crawl-scope string[]       in scope url regex to be followed by crawler
   -cos, -crawl-out-scope string[]  out of scope url regex to be excluded by crawler
   -fs, -field-scope string         pre-defined scope field (dn,rdn,fqdn) or custom regex (e.g., '(company-staging.io|company.com)') (default "rdn")
   -ns, -no-scope                   disables host based default scope
   -do, -display-out-scope          display external endpoint from scoped crawling

FILTER:
   -mr, -match-regex string[]             regex or list of regex to match on output url (cli, file)
   -fr, -filter-regex string[]            regex or list of regex to filter on output url (cli, file)
   -f, -field string                      field to display in output (url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir) (Deprecated: use -output-template instead)
   -sf, -store-field string               field to store in per-host output (url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir)
   -em, -extension-match string[]         match output for given extension (eg, -em php,html,js,none)
   -ef, -extension-filter string[]        filter output for given extension (eg, -ef png,css)
   -ndef, -no-default-ext-filter bool     remove default extensions from the filter list
   -mdc, -match-condition string          match response with dsl based condition
   -fdc, -filter-condition string         filter response with dsl based condition
   -duf, -disable-unique-filter           disable duplicate content filtering
   -filter-page-type string[]      filter response with page type (e.g. error,captcha,parked)

RATE-LIMIT:
   -c, -concurrency int          number of concurrent fetchers to use (default 10)
   -p, -parallelism int          number of concurrent inputs to process (default 10)
   -rd, -delay int               request delay between each request in seconds
   -rl, -rate-limit int          maximum requests to send per second (default 150)
   -rlm, -rate-limit-minute int  maximum number of requests to send per minute
   -hrl, -host-rate-limit int    maximum requests to send per second per host
   -hrlm, -host-rate-limit-minute int  maximum number of requests to send per minute per host

UPDATE:
   -up, -update                 update katana to latest version
   -duc, -disable-update-check  disable automatic katana update check

OUTPUT:
   -o, -output string                file to write output to
   -output-template string      custom output template
   -sr, -store-response              store http requests/responses
   -srd, -store-response-dir string  store http requests/responses to custom directory
   -ncb, -no-clobber                 do not overwrite output file
   -sfd, -store-field-dir string     store per-host field to custom directory
   -or, -omit-raw                    omit raw requests/responses from jsonl output
   -ob, -omit-body                   omit response body from jsonl output
   -lof, -list-output-fields         list available fields for jsonl output format
   -eof, -exclude-output-fields      exclude fields from jsonl output
   -j, -jsonl                        write output in jsonl format
   -nc, -no-color                    disable output content coloring (ANSI escape codes)
   -silent                           display output only
   -v, -verbose                      display verbose output
   -debug                            display debug output
   -version                          display project version

运行 Katana

Katana 的输入

katana 需要 url 或 endpoint 进行爬取,并支持单个或多个输入。

输入 URL 可以通过 -u 选项提供,多个值可以使用逗号分隔的输入提供,同样支持使用 -list 选项的文件输入,此外还支持管道输入(stdin)。

URL 输入```sh

katana -u https://tesla.com

root@kitploit:~
#### 多URL输入(用逗号分隔)```sh
katana -u https://tesla.com,https://google.com

列表输入```bash

$ cat url_list.txt

https://tesla.com https://google.com

root@kitploit:~
<!-- 输入为空,无内容可翻译。 -->```
katana -list url_list.txt

STDIN (管道) 输入```sh

echo https://tesla.com | katana

root@kitploit:~
输入:```sh
cat domains | httpx | katana

运行 katana -```console katana -u https://youtube.com


/ /_____ / /___ ____ ___ _ / '/ _ / __/ _ / _ / _ / //_\,/_/_,////_,_/ v0.0.1

root@kitploit:~
  projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions. [WRN] Developers assume no liability and are not responsible for any misuse or damage. https://www.youtube.com/ https://www.youtube.com/about/ https://www.youtube.com/about/press/ https://www.youtube.com/about/copyright/ https://www.youtube.com/t/contact_us/ https://www.youtube.com/creators/ https://www.youtube.com/ads/ https://www.youtube.com/t/terms https://www.youtube.com/t/privacy https://www.youtube.com/about/policies/ https://www.youtube.com/howyoutubeworks?utm_campaign=ytgen&utm_source=ythp&utm_medium=LeftNav&utm_content=txt&u=https%3A%2F%2Fwww.youtube.com%2Fhowyoutubeworks%3Futm_source%3Dythp%26utm_medium%3DLeftNav%26utm_campaign%3Dytgen https://www.youtube.com/new https://m.youtube.com/ https://www.youtube.com/s/desktop/4965577f/jsbin/desktop_polymer.vflset/desktop_polymer.js https://www.youtube.com/s/desktop/4965577f/cssbin/www-main-desktop-home-page-skeleton.css https://www.youtube.com/s/desktop/4965577f/cssbin/www-onepick.css https://www.youtube.com/s/_/ytmainappweb/_/ss/k=ytmainappweb.kevlar_base.0Zo5FUcPkCg.L.B1.O/am=gAE/d=0/rs=AGKMywG5nh5Qp-BGPbOaI1evhF5BVGRZGA https://www.youtube.com/opensearch?locale=en_GB

root@kitploit:~
## 爬取模式

### 标准模式

标准爬取模式在底层使用标准 Go HTTP 库处理 HTTP 请求/响应。此模式执行速度更快,因为没有浏览器开销。但它会按原样分析 HTTP 响应体,不进行任何 JavaScript 或 DOM 渲染,可能会遗漏复杂 Web 应用中那些依赖于浏览器特定事件(例如)的 DOM 渲染后端点或异步端点调用。

### 无头模式

无头模式将内部无头调用挂接到浏览器上下文中,直接处理 HTTP 请求/响应。这有两个优势:
- HTTP 指纹(TLS 和用户代理)完全将客户端识别为合法浏览器
- 覆盖率更高,因为端点既通过分析标准原始响应(与前一模式相同)发现,也通过启用 JavaScript 的浏览器渲染后响应发现。

无头爬取是可选的,可使用 `-headless` 选项启用。

以下是其他无头 CLI 选项 -```console
katana -h headless

Flags:
HEADLESS:
   -hl, -headless                    enable headless hybrid crawling (experimental)
   -sc, -system-chrome               use local installed chrome browser instead of katana installed
   -sb, -show-browser                show the browser on the screen with headless mode
   -ho, -headless-options string[]   start headless chrome with additional options
   -nos, -no-sandbox                 start headless chrome in --no-sandbox mode
   -cdd, -chrome-data-dir string     path to store chrome browser data
   -scp, -system-chrome-path string  use specified chrome browser for headless crawling
   -noi, -no-incognito               start headless chrome without incognito mode
   -cwu, -chrome-ws-url string       use chrome browser instance launched elsewhere with the debugger listening at this URL
   -xhr, -xhr-extraction             extract xhr requests
   -pls, -page-load-strategy string  page load strategy (heuristic, load, domcontentloaded, networkidle, none) (default "heuristic")
   -dwt, -dom-wait-time int          time in seconds to wait after page load when using domcontentloaded strategy (default 5)
   -csp, -captcha-solver-provider string  captcha solver provider (e.g. capsolver)
   -csk, -captcha-solver-key string       captcha solver provider api key

-no-sandbox

使用 no-sandbox 选项运行无头Chrome浏览器,在以root用户运行时非常有用。```console katana -u https://tesla.com -headless -no-sandbox

root@kitploit:~
*`-no-incognito`*
----

以非无痕模式运行无头Chrome浏览器,在使用本地浏览器时很有用。```console
katana -u https://tesla.com -headless -no-incognito

为了在多次运行之间保留cookies和其他浏览器会话数据,将-no-incognito与-chrome-data-dir结合使用,这样Katana就会重复使用你指定的Chrome配置文件目录,而不是一个独立的临时目录。```console katana -u https://tesla.com -headless -no-incognito -chrome-data-dir /tmp/katana-profile

root@kitploit:~
*`-headless-options`*
----

在无头模式下爬取时,可以使用 `-headless-options` 指定额外的 Chrome 选项,例如 -```console
katana -u https://tesla.com -headless -system-chrome -headless-options --disable-gpu,proxy-server=http://127.0.0.1:8080

-page-load-strategy

控制 katana 在无头模式下如何等待页面加载。不同的策略适用于不同类型的 Web 应用程序:

root@kitploit:~
`domcontentloaded` 策略对于单页应用程序(SPA)特别有用,这些应用由于持续的后台请求(如 WebSocket、轮询等)而永远不会完全完成加载。

*`-dom-wait-time`*
----

当使用 `domcontentloaded` 页面加载策略时,此选项指定在 DOMContentLoaded 事件触发后等待多少秒。这为 JavaScript 渲染交互元素提供了时间。默认值为 5 秒。```console
katana -u https://tesla.com -headless -pls domcontentloaded -dwt 10

验证码解决

Katana 在无头爬取过程中支持自动检测和解决验证码。当遇到验证码页面时,katana 会识别验证码提供商,通过外部服务解决验证码,并继续爬取。

支持的验证码类型:reCAPTCHA v2、reCAPTCHA v3、reCAPTCHA Enterprise、Cloudflare Turnstile、hCaptcha

-captcha-solver-provider

用于指定验证码解决提供商的选项。当前支持:capsolver。

-captcha-solver-key

验证码解决提供商的 API 密钥。```console katana -u https://example.com -headless -csp capsolver -csk YOUR_API_KEY

root@kitploit:~
提供商和密钥也可以通过环境变量设置:```console
export CAPTCHA_SOLVER_PROVIDER=capsolver
export CAPTCHA_SOLVER_KEY=YOUR_API_KEY
katana -u https://example.com -headless

范围控制

如果不限定范围,爬取可能会无限进行,因此 katana 提供了多种支持来定义爬取范围。

-field-scope

最方便的选项,通过预定义字段名称来定义范围,rdn 是字段范围的默认选项。

  • rdn - 爬取范围限定为根域名及其所有子域名(例如 *example.com)(默认)
  • fqdn - 爬取范围限定为给定的子域名(例如 www.example.com 或 api.example.com)
  • dn - 爬取范围限定为域名关键字(例如 example)```console katana -u https://tesla.com -fs dn
root@kitploit:~
*`-crawl-scope`*
------

对于高级范围控制,可以使用 `-cs` 选项,该选项支持**正则表达式**。```console
katana -u https://tesla.com -cs login

对于多个作用域规则,可以传递带有多行字符串/正则表达式的文件输入。```bash $ cat in_scope.txt

login/ admin/ app/ wordpress/

root@kitploit:~
### 功能特性

- [x] **自动化网络映射** — 自动发现网络上的主机、开放端口和运行的服务。
- [x] **漏洞检测** — 根据现有签名识别常见漏洞(CVE)。
- [x] **Web 应用审计** — 扫描目录、参数、表单并检测 SQL 注入、XSS 以及其他 Web 漏洞。
- [x] **暴力破解引擎** — 支持对 HTTP、FTP、SSH、WordPress 及其他服务进行登录破解。
- [x] **报告生成** — 生成 HTML、PDF 和 JSON 格式的详细报告。
- [x] **模块化架构** — 通过社区引擎轻松扩展或添加自定义扫描模块。
- [x] **实时协作** — 允许团队成员在扫描过程中共享发现和笔记。
- [ ] **API 集成** — 提供 REST API 以集成到 CI/CD 管道。
- [ ] **反检测技术** — 随机化请求头、代理轮换和延迟机制。```console
katana -u https://tesla.com -cs in_scope.txt

-crawl-out-scope

用于定义不爬取的内容,-cos 选项可用于此目的,并支持正则表达式输入。```console katana -u https://tesla.com -cos logout

root@kitploit:~
对于多条超出范围的规则,可以传入包含多行字符串/正则表达式的文件输入。```bash
$ cat out_of_scope.txt

/logout
/log_out
  • reverse () - Reverse the binary to recover disk key ([D] key) from memory```console katana -u https://tesla.com -cos out_of_scope.txt
root@kitploit:~
*`-no-scope`*
----

Katana 默认作用域为 `*.domain`,要禁用此作用域,可以使用 `-ns` 选项,同时也用于爬取互联网。```console
katana -u https://tesla.com -ns

-display-out-scope

默认情况下,当使用 scope 选项时,它也会应用于要显示为输出的链接,因此默认排除外部 URL。若要覆盖此行为,可以使用 -do 选项来显示目标作用域 URL/端点中的所有外部 URL。``` katana -u https://tesla.com -do

root@kitploit:~
以下是作用域控制的所有CLI选项 -```console
katana -h scope

Flags:
SCOPE:
   -cs, -crawl-scope string[]       in scope url regex to be followed by crawler
   -cos, -crawl-out-scope string[]  out of scope url regex to be excluded by crawler
   -fs, -field-scope string         pre-defined scope field (dn,rdn,fqdn) (default "rdn")
   -ns, -no-scope                   disables host based default scope
   -do, -display-out-scope          display external endpoint from scoped crawling

爬虫配置

Katana 提供了多种选项,可按我们的需求配置和控制爬取方式。

-depth

用于定义爬取时跟随 URL 的 深度 的选项,深度越大,爬取的端点数量越多,爬取时间也越长。``` katana -u https://tesla.com -d 5

root@kitploit:~
*`-js-crawl`*
----

用于启用JavaScript文件解析并爬取在JavaScript文件中发现的端点的选项,默认为禁用。```
katana -u https://tesla.com -jc

-crawl-duration

选项用于预定义爬取持续时间,默认禁用。``` katana -u https://tesla.com -ct 2

root@kitploit:~
*`-known-files`*
----
启用爬取 `robots.txt` 和 `sitemap.xml` 文件的选项,默认关闭。```
katana -u https://tesla.com -kf robotstxt,sitemapxml

-automatic-form-fill

启用自动表单填充的选项,适用于已知/未知字段。可以通过更新位于 $HOME/.config/katana/form-config.yaml 的表单配置文件,根据需要自定义已知字段值。

自动表单填充是实验性功能。``` katana -u https://tesla.com -aff

root@kitploit:~
表单配置值支持DSL辅助函数用于动态数据生成。来自[projectdiscovery/dsl](https://github.com/projectdiscovery/dsl)库的所有`rand_*`函数都可用:```yaml
# $HOME/.config/katana/form-config.yaml
email: "rand_email()"
phone: "rand_phone()"
placeholder: "rand_first_name()"
password: 'rand_base(16, "")'
color: "#e66465"

-filter-similar

通过规范化可变路径段来过滤爬取相似URL的选项。这可以检测ID、UUID、哈希、日期和其他动态值,并在运行时学习重复模式。例如,/users/123 和 /users/456 被视为同一端点。``` katana -u https://tesla.com -fsu

root@kitploit:~
提升阈值(在路径位置上具有多少个不同值后才会被视为参数)可以通过 `-fst` 进行调整。较低的值更激进(爬取的 URL 更少),较高的值更宽松。默认值为 `10`。```
katana -u https://tesla.com -fsu -fst 5

-max-domain-pages

用于限制每个域爬取页面数量的选项。防止单个域消耗整个爬取预算,适用于大型网站或爬虫陷阱防护。``` katana -u https://tesla.com -mdp 100

root@kitploit:~
## 知识库分类

Katana 可通过 **知识库** 丰富爬取结果——由 [dit](https://github.com/HappyHackingSpace/dit) 驱动的机器学习分类,对每个爬取页面进行分类。启用后,每个响应都会按 **页面类型**(例如 `login`, `error`, `captcha`, `parked`)进行分类,并识别页面上的任何表单,结果将附加到 JSONL 输出的 `knowledgebase` 字段。此功能适用于 **所有引擎**(标准引擎和无头引擎)。

> **注意**:分类模型在首次使用时**自动下载**到 `~/.dit/model.json`(来自 [Hugging Face](https://huggingface.co/datasets/happyhackingspace/dit))。这是每台机器一次性的成本——后续运行会重用缓存的模型。无需手动安装 `dit`。

*`-knowledge-base`*
----

启用知识库分类。页面类型和表单分类将添加到每个结果的 `knowledgebase` 字段中。```console
katana -u https://example.com -kb -jsonl

请提供需要翻译的Markdown内容。```json { "timestamp": "...", "request": { "...": "..." }, "response": { "...": "...", "knowledgebase": { "PageType": "login", "Forms": [{ "type": "login", "fields": { "username": "username or email", "password": "password" } }] } } }

root@kitploit:~
*`-filter-page-type`*
----

将结果筛选为仅限指定的页面类型。启用此选项将隐含 `-kb`(分类器将自动初始化)。```console
katana -u https://example.com -fpt login,error

-kb-secrets

在知识库中启用秘密提取器,将检测到的秘密(API密钥、令牌等)显示在 secrets 键下。添加 -kb-validate-secrets 以根据其提供者验证检测到的秘密——请注意,这会发送实时API调用。```console katana -u https://example.com -kb-secrets

root@kitploit:~
`*`-kb-endpoints`*
----

启用端点提取器,该提取器将请求分类为 REST、GraphQL、SOAP 或 XHR,并将结果存储在 `endpoints` 键下。```console
katana -u https://example.com -kb-endpoints

认证爬取

认证爬取涉及在HTTP请求中包含自定义标头或Cookie,以访问受保护的资源。这些标头提供身份验证或授权信息,使您能够爬取经过身份验证的内容/端点。您可以在命令行中直接指定标头,或将其作为文件提供给katana以执行认证爬取。

注意:用户需要手动执行身份验证,并将会话Cookie/标头导出到文件中,以便与katana配合使用。

-headers

向请求添加自定义标头或Cookie的选项。

HTTP规范中标头(https://datatracker.ietf.org/doc/html/rfc7230#section-3.2)的语法

以下是一个向请求添加Cookie的示例:``` katana -u https://tesla.com -H 'Cookie: usrsess=AmljNrESo'

root@kitploit:~
也可以将标头或cookie作为文件提供。例如:```
$ cat cookie.txt

Cookie: PHPSESSIONID=XXXXXXXXX
X-API-KEY: XXXXX
TOKEN=XX

(空)``` katana -u https://tesla.com -H cookie.txt

root@kitploit:~
需要时还有更多选项可以配置,以下是所有与配置相关的CLI选项 -```console
katana -h config

Flags:
CONFIGURATION:
   -r, -resolvers string[]       list of custom resolver (file or comma separated)
   -d, -depth int                maximum depth to crawl (default 3)
   -jc, -js-crawl                enable endpoint parsing / crawling in javascript file
   -ct, -crawl-duration int      maximum duration to crawl the target for
   -kf, -known-files string      enable crawling of known files (all,robotstxt,sitemapxml)
   -mrs, -max-response-size int  maximum response size to read (default 9223372036854775807)
   -timeout int                  time to wait for request in seconds (default 10)
   -aff, -automatic-form-fill    enable automatic form filling (experimental)
   -fx, -form-extraction         enable extraction of form, input, textarea & select elements
   -retry int                    number of times to retry the request (default 1)
   -proxy string                 http/socks5 proxy to use
   -H, -headers string[]         custom header/cookie to include in request
   -config string                path to the katana configuration file
   -fc, -form-config string      path to custom form configuration file
   -flc, -field-config string    path to custom field configuration file
   -s, -strategy string          Visit strategy (depth-first, breadth-first) (default "depth-first")
   -iqp, -ignore-query-params    Ignore crawling same path with different query-param values
   -fsu, -filter-similar         filter crawling of similar looking URLs (e.g., /users/123 and /users/456)
   -fst, -filter-similar-threshold int  number of distinct values before a path position is treated as parameter (default 10)
   -mdp, -max-domain-pages int   maximum number of pages to crawl per domain (default unlimited)

连接到活跃浏览器会话

Katana 也可以连接到用户已登录并完成身份验证的活跃浏览器会话,并利用其进行爬取。唯一的要求是启动远程调试已启用的浏览器。

以下是一个启动启用了远程调试的 Chrome 浏览器并将其与 katana 配合使用的示例:

第1步)首先定位 Chrome 可执行文件的路径

第2步)启动启用了远程调试的 Chrome,它将返回 WebSocket URL。例如,在 macOS 上,你可以使用以下命令启动启用了远程调试的 Chrome -```console $ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222

DevTools listening on ws://127.0.0.1:9222/devtools/browser/c5316c9c-19d6-42dc-847a-41d1aeebf7d6

root@kitploit:~
> 现在登录你要爬取的网站,并保持浏览器处于打开状态。

**步骤 3) 现在使用 websocket url 配合 katana 连接到活动浏览器会话并爬取网站**```console
katana -headless -u https://tesla.com -cwu ws://127.0.0.1:9222/devtools/browser/c5316c9c-19d6-42dc-847a-41d1aeebf7d6 -no-incognito

注: 你可以使用 -cdd 选项来指定自定义的 Chrome 数据目录以存储浏览器数据和 Cookie,但如果 Cookie 设置为仅 "Session" 或在特定时间后过期,则不会保存会话数据。

过滤器

-field

[!WARNING] 已弃用:请改用 -output-template。为了向后兼容,仍然支持 field 标志。

Katana 内置了一些字段,可用于过滤输出以获取所需信息,可以使用 -f 选项来指定任何可用的字段。``` -f, -field string field to display in output (url,path,fqdn,rdn,rurl,qurl,qpath,file,key,value,kv,dir,udir)

root@kitploit:~
以下是各字段及其使用时的预期输出示例表格:

| 字段    | 描述                       | 示例                                                         |
| ------- | -------------------------- | ------------------------------------------------------------ |
| `url`   | URL 端点                   | `https://admin.projectdiscovery.io/admin/login?user=admin&password=admin` |
| `qurl`  | 包含查询参数的 URL         | `https://admin.projectdiscovery.io/admin/login.php?user=admin&password=admin` |
| `qpath` | 包含查询参数的路径         | `/login?user=admin&password=admin`                           |
| `path`  | URL 路径                   | `https://admin.projectdiscovery.io/admin/login`              |
| `fqdn`  | 完全限定域名               | `admin.projectdiscovery.io`                                  |
| `rdn`   | 根域名                     | `projectdiscovery.io`                                        |
| `rurl`  | 根 URL                     | `https://admin.projectdiscovery.io`                          |
| `ufile` | 包含文件的 URL             | `https://admin.projectdiscovery.io/login.js`                 |
| `file`  | URL 中的文件名             | `login.php`                                                  |
| `key`   | URL 中的参数键             | `user,password`                                              |
| `value` | URL 中的参数值             | `admin,admin`                                                |
| `kv`    | URL 中的键=值对            | `user=admin&password=admin`                                  |
| `dir`   | URL 目录名                 | `/admin/`                                                    |
| `udir`  | 包含目录的 URL             | `https://admin.projectdiscovery.io/admin/`                   |

以下是使用字段选项仅显示所有包含查询参数的 URL 的示例:```
katana -u https://tesla.com -f qurl -silent

https://shop.tesla.com/en_au?redirect=no
https://shop.tesla.com/en_nz?redirect=no
https://shop.tesla.com/product/men_s-raven-lightweight-zip-up-bomber-jacket?sku=1740250-00-A
https://shop.tesla.com/product/tesla-shop-gift-card?sku=1767247-00-A
https://shop.tesla.com/product/men_s-chill-crew-neck-sweatshirt?sku=1740176-00-A
https://www.tesla.com/about?redirect=no
https://www.tesla.com/about/legal?redirect=no
https://www.tesla.com/findus/list?redirect=no

自定义字段

你可以创建自定义字段,使用正则表达式规则从页面响应中提取并存储特定信息。这些自定义字段通过 YAML 配置文件定义,并从默认位置 $HOME/.config/katana/field-config.yaml 加载。或者,你可以使用 -flc 选项从其他位置加载自定义字段配置文件。 以下是一个自定义字段示例。```yaml

  • name: email type: regex regex:

    • '([a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+.[a-zA-Z0-9_-]+)'
    • '([a-zA-Z0-9+.-]+@[a-zA-Z0-9.-]+.[a-zA-Z0-9_-]+)'
  • name: phone type: regex regex:

    • '\d{3}-\d{8}|\d{4}-\d{7}'
root@kitploit:~
定义自定义字段时,支持以下属性:

- **name**(必需)

> **name** 属性的值将用作 `-field` 命令行选项的值。

- **type**(必需)

> 自定义属性的类型,目前支持的选项为 `regex`。

- **part**(可选)

> 要从响应中提取信息的部分。默认值为 `response`,包含请求头和请求体。其他可能的值有 `header` 和 `body`。

- group(可选)

> 你可以使用此属性选择正则表达式中特定的匹配组,例如:`group: 1`

#### 使用自定义字段运行 katana:```console
katana -u https://tesla.com -f email,phone

-store-field

为了配合在运行时过滤输出的 field 选项,提供了 -sf, -store-fields 选项,其工作方式与 field 选项完全相同,区别在于它不是过滤输出,而是将所有信息存储到磁盘上名为 katana_field 的目录中,并按目标 URL 排序。使用 -sfd 或 -store-field-dir 可将数据存储到其他位置。``` katana -u https://tesla.com -sf key,fqdn,qurl -silent

root@kitploit:~
请提供需要翻译的 Markdown 内容。```bash
$ ls katana_field/

https_www.tesla.com_fqdn.txt
https_www.tesla.com_key.txt
https_www.tesla.com_qurl.txt

The -store-field 选项可用于收集信息以构建针对性的字典列表,用于各种目的,包括但不限于:

  • 识别最常用的参数
  • 发现频繁使用的路径
  • 寻找常用的文件
  • 识别相关或未知的子域名

Katana 过滤器

-extension-match

使用 -em 选项可以轻松匹配爬取输出的特定扩展名,以确保仅显示包含给定扩展名的输出。``` katana -u https://tesla.com -silent -em js,jsp,json

root@kitploit:~
使用特殊值 `none` 来在输出中同时包含没有文件扩展名的URL:```
katana -u https://tesla.com -silent -em js,jsp,json,none

-extension-filter

使用 -ef 选项可以轻松过滤爬取输出中的特定扩展名,该选项确保删除所有包含指定扩展名的 URL。``` katana -u https://tesla.com -silent -ef css,txt,md

root@kitploit:~
*`-no-default-ext-filter`*
---

Katana 默认会过滤几个扩展名。可以通过 `-ndef` 选项禁用此功能。```
katana -u https://tesla.com -silent -ndef

-match-regex

-match-regex 或 -mr 标志允许你使用正则表达式过滤输出的 URL。当使用此标志时,只有匹配指定正则表达式的 URL 才会被打印到输出中。``` katana -u https://tesla.com -mr 'https://shop\.tesla\.com/*' -silent

root@kitploit:~
*`-filter-regex`*
---
`-filter-regex` 或 `-fr` 标志允许您使用正则表达式过滤输出 URL。使用此标志时,它将跳过与指定正则表达式匹配的 URL。```
katana -u https://tesla.com -fr 'https://www\.tesla\.com/*' -silent

高级过滤

Katana支持基于DSL的表达式,用于高级匹配和过滤功能:

  • 匹配状态码为200的端点:```shell katana -u https://www.hackerone.com -mdc 'status_code == 200'
root@kitploit:~
- 匹配包含 "default" 且状态码不是 403 的端点:```shell
katana -u https://www.hackerone.com -mdc 'contains(endpoint, "default") && status_code != 403'
  • 匹配使用PHP技术的端点:```shell katana -u https://www.hackerone.com -mdc 'contains(to_lower(technologies), "php")'
root@kitploit:~
- 要过滤掉运行在 Cloudflare 上的端点:```shell
katana -u https://www.hackerone.com -fdc 'contains(to_lower(technologies), "cloudflare")'

DSL函数可以应用于jsonl输出中的任何键。有关可用DSL函数的更多信息,请访问 dsl project。

以下是其他过滤选项 -```console katana -h filter

Flags: FILTER: -mr, -match-regex string[] regex or list of regex to match on output url (cli, file) -fr, -filter-regex string[] regex or list of regex to filter on output url (cli, file) -f, -field string field to display in output (url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir) -sf, -store-field string field to store in per-host output (url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir) -em, -extension-match string[] match output for given extension (eg, -em php,html,js,none) -ef, -extension-filter string[] filter output for given extension (eg, -ef png,css) -ndef, -no-default-ext-filter bool remove default extensions from the filter list -mdc, -match-condition string match response with dsl based condition -fdc, -filter-condition string filter response with dsl based condition -duf, -disable-unique-filter disable duplicate content filtering

root@kitploit:~
## 速率限制

在爬取过程中,如果不遵守目标网站的限制,很容易被屏蔽或封禁。katana 提供了多种选项,可以根据需求调整爬取速度(快/慢)。

*`-delay`*
-----

选项用于在爬取时在 katana 发出的每个新请求之间引入延迟(秒),默认禁用。```
katana -u https://tesla.com -delay 20

-concurrency

用于控制每个目标同时获取的URL数量的选项。``` katana -u https://tesla.com -c 20

root@kitploit:~
*`-parallelism`*
-----
定义从列表输入中同时处理的目标数量的选项。```
katana -u https://tesla.com -p 20

-rate-limit

每秒最大请求数,全局应用于所有主机。``` katana -u https://tesla.com -rl 100

root@kitploit:~
*`-rate-limit-minute`*
-----
每分钟最大请求数,全局应用于所有主机。```
katana -u https://tesla.com -rlm 500

-host-rate-limit

每个主机每秒的最大请求数。每个主机拥有自己的速率限制桶,因此慢速主机不会限制快速主机。设置后替换全局速率限制。此外,Katana 在主机返回 429 或 503 时,会自动以指数延迟和抖动进行回退。```console katana -u https://tesla.com -hrl 50

root@kitploit:~
*`-host-rate-limit-minute`*
-----
每个主机的每分钟最大请求数。```console
katana -u https://tesla.com -hrlm 200

以下是所有用于速率限制控制的长/短CLI选项 -```console katana -h rate-limit

Flags: RATE-LIMIT: -c, -concurrency int number of concurrent fetchers to use (default 10) -p, -parallelism int number of concurrent inputs to process (default 10) -rd, -delay int request delay between each request in seconds -rl, -rate-limit int maximum requests to send per second (default 150) -rlm, -rate-limit-minute int maximum number of requests to send per minute -hrl, -host-rate-limit int maximum requests to send per second per host -hrlm, -host-rate-limit-minute int maximum number of requests to send per minute per host

root@kitploit:~
## 输出

Katana 支持以纯文本格式输出文件,也支持 JSON 格式,其中包含额外信息,如 `source`、`tag` 和 `attribute` 名称,用于关联已发现的端点。

*`-output`*
---

默认情况下,katana 以纯文本格式输出已爬取的端点。可以使用 -output 选项将结果写入文件。```console
katana -u https://example.com -no-scope -output example_endpoints.txt

-output-template

-output-template 选项允许你使用模板自定义输出格式,为定义输出结构提供了灵活性。此选项取代了已弃用的 -field 标志用于过滤输出。你无需依赖预定义字段,而是可以直接在命令行中指定自定义模板,以控制提取数据的呈现方式。

使用 -output-template 选项的示例:```sh katana -u https://example.com -output-template '{{email}} - {{url}}'

root@kitploit:~
在此示例中,`email` 表示一个[自定义字段](#custom-fields),它提取并显示在源 `url` 中找到的电子邮件地址。

> [!NOTE]
> 如果指定的字段不存在或不包含值,则它将被简单地从输出中省略。

此选项可以有效地以最适合您的用例的方式构建输出,使数据提取更加直观和可定制。

*`-jsonl`*
---```console
katana -u https://example.com -jsonl | jq .
root@kitploit:~
"method": "GET",
"endpoint": "https://example.com",
"raw": "GET / HTTP/1.1\r\nHost: example.com\r\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36\r\nAccept-Encoding: gzip\r\n\r\n"

}, "response": { "status_code": 200, "headers": { "accept_ranges": "bytes", "expires": "Mon, 27 Mar 2023 10:53:58 GMT", "last_modified": "Thu, 17 Oct 2019 07:18:26 GMT", "content_type": "text/html; charset=UTF-8", "server": "ECS (dcb/7EA3)", "vary": "Accept-Encoding", "etag": ""3147526947"", "cache_control": "max-age=604800", "x_cache": "HIT", "date": "Mon, 20 Mar 2023 10:53:58 GMT", "age": "331239" }, "body": "\n\n\n Example Domain\n\n <meta charset="utf-8" />\n <meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n <meta name="viewport" content="width=device-width, initial-scale=1" />\n <style type="text/css">\n body {\n background-color: #f0f0f2;\n margin: 0;\n padding: 0;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;\n \n }\n div {\n width: 600px;\n margin: 5em auto;\n padding: 2em;\n background-color: #fdfdff;\n border-radius: 0.5em;\n box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);\n }\n a:link, a:visited {\n color: #38488f;\n text-decoration: none;\n }\n @media (max-width: 700px) {\n div {\n margin: 0 auto;\n width: auto;\n }\n }\n \n\n\n\n

\n

Example Domain

\n

This domain is for use in illustrative examples in documents. You may use this\n domain in literature without prior coordination or asking for permission.

\n

<a href="https://www.iana.org/domains/example\">More information...

\n
\n\n\n", "technologies": [ "Azure", "Amazon ECS", "Amazon Web Services", "Docker", "Azure CDN" ], "raw": "HTTP/1.1 200 OK\r\nContent-Length: 1256\r\nAccept-Ranges: bytes\r\nAge: 331239\r\nCache-Control: max-age=604800\r\nContent-Type: text/html; charset=UTF-8\r\nDate: Mon, 20 Mar 2023 10:53:58 GMT\r\nEtag: "3147526947"\r\nExpires: Mon, 27 Mar 2023 10:53:58 GMT\r\nLast-Modified: Thu, 17 Oct 2019 07:18:26 GMT\r\nServer: ECS (dcb/7EA3)\r\nVary: Accept-Encoding\r\nX-Cache: HIT\r\n\r\n\n\n\n Example Domain\n\n <meta charset="utf-8" />\n <meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n <meta name="viewport" content="width=device-width, initial-scale=1" />\n <style type="text/css">\n body {\n background-color: #f0f0f2;\n margin: 0;\n padding: 0;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;\n \n }\n div {\n width: 600px;\n margin: 5em auto;\n padding: 2em;\n background-color: #fdfdff;\n border-radius: 0.5em;\n box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);\n }\n a:link, a:visited {\n color: #38488f;\n text-decoration: none;\n }\n @media (max-width: 700px) {\n div {\n margin: 0 auto;\n width: auto;\n }\n }\n \n\n\n\n
\n

Example Domain

\n

This domain is for use in illustrative examples in documents. You may use this\n domain in literature without prior coordination or asking for permission.

\n

<a href="https://www.iana.org/domains/example\">More information...

\n
\n\n\n" } }

root@kitploit:~
*`-store-response`*
----

`-store-response` 选项允许将所有爬取到的端点请求和响应写入一个文本文件。使用此选项时,包含请求和响应的文本文件将被写入到 **katana_response** 目录。如果您想指定自定义目录,可以使用 `-store-response-dir` 选项。```console
katana -u https://example.com -no-scope -store-response
root@kitploit:~
bash install.sh
  1. 复制‘searchsploit’脚本

    root@kitploit:~
    sudo cp searchsploit /usr/local/bin/
    
  2. 通过使用**’searchsploit’**访问其他‘exploitdb’目录和文件的帮助,创建必要的工具

    root@kitploit:~
    searchsploit --help
    
  3. 现在,你可以像在Kali Linux中的原始‘searchsploit’工具一样,在Debian、Ubuntu、Pop!_OS、Linux Mint、基本OS上使用工作的工具

    /usr/share/exploitdb/ -> 你新使用的exploitdb目录路径```bash $ cat katana_response/index.txt

katana_response/example.com/327c3fda87ce286848a574982ddd0b7c7487f816.txt https://example.com (200 OK) katana_response/www.iana.org/bfc096e6dd93b993ca8918bf4c08fdc707a70723.txt http://www.iana.org/domains/reserved (200 OK)

root@kitploit:~
**注意:**

*在 `-headless` 模式下不支持 `-store-response` 选项。*

*`-list-output-fields`*
----

`-list-output-fields` 或 `-lof` 标志会显示所有可在 JSONL 输出格式中使用的可用字段。这有助于了解在使用自定义输出模板或排除特定字段时可用的数据。```console
katana -lof

-exclude-output-fields

-exclude-output-fields 或 -eof 标志允许你从 JSONL 输出中排除特定字段。这对于通过移除不需要的字段来减小输出大小或专注于特定数据非常有用。```console katana -u https://example.com -jsonl -eof raw,body

root@kitploit:~
以下是关于输出的额外CLI选项 -```console
katana -h output

OUTPUT:
   -o, -output string                file to write output to
   -sr, -store-response              store http requests/responses
   -srd, -store-response-dir string  store http requests/responses to custom directory
   -lof, -list-output-fields         list available fields for jsonl output format
   -eof, -exclude-output-fields      exclude fields from jsonl output
   -j, -json                         write output in JSON Lines format
   -nc, -no-color                    disable output content coloring (ANSI escape codes)
   -silent                           display output only
   -v, -verbose                      display verbose output
   -version                          display project version

Katana 作为库

katana 可以作为库使用,通过创建 Option 结构体的实例并使用与 CLI 相同的选项填充它。使用这些选项,你可以创建 crawlerOptions,进而创建标准或混合的 crawler。 应调用 crawler.Crawl 方法来爬取输入。```go package main

import ( "math"

root@kitploit:~
"github.com/projectdiscovery/gologger"
"github.com/projectdiscovery/katana/pkg/engine/standard"
"github.com/projectdiscovery/katana/pkg/output"
"github.com/projectdiscovery/katana/pkg/types"

)

func main() { options := &types.Options{ MaxDepth: 3, // Maximum depth to crawl FieldScope: "rdn", // Crawling Scope Field BodyReadSize: math.MaxInt, // Maximum response size to read Timeout: 10, // Timeout is the time to wait for request in seconds Concurrency: 10, // Concurrency is the number of concurrent crawling goroutines Parallelism: 10, // Parallelism is the number of urls processing goroutines Delay: 0, // Delay is the delay between each crawl requests in seconds RateLimit: 150, // Maximum requests to send per second Strategy: "depth-first", // Visit strategy (depth-first, breadth-first) OnResult: func(result output.Result) { // Callback function to execute for result gologger.Info().Msg(result.Request.URL) }, } crawlerOptions, err := types.NewCrawlerOptions(options) if err != nil { gologger.Fatal().Msg(err.Error()) } defer crawlerOptions.Close() crawler, err := standard.New(crawlerOptions) if err != nil { gologger.Fatal().Msg(err.Error()) } defer crawler.Close() var input = "https://www.hackerone.com" err = crawler.Crawl(input) if err != nil { gologger.Warning().Msgf("Could not crawl %s: %s", input, err.Error()) } }

root@kitploit:~
## 报告问题与功能请求

为维护问题追踪并提高分类效率:

**所有报告均从 [GitHub Discussions](https://github.com/projectdiscovery/katana/discussions) 开始**

- **错误报告** → [发起问答讨论](https://github.com/projectdiscovery/katana/discussions/new?category=q-a)
- **功能请求** → [发起创意讨论](https://github.com/projectdiscovery/katana/discussions/new?category=ideas)  
- **疑问咨询** → [发起问答讨论](https://github.com/projectdiscovery/katana/discussions/new?category=q-a)

**为何先使用讨论?**
- **社区可提供帮助** – 快速解答疑问与故障排查
- **更优的分类** – 确认的错误/功能将转化为可追踪的问题  
- **更干净的问题追踪器** – 仅聚焦于可操作项

维护者会在适当审查后将讨论转化为问题。

--------

<div align="center">

katana 由 [projectdiscovery](https://projectdiscovery.io) 团队倾心打造,采用 [MIT 许可证](https://github.com/projectdiscovery/katana/blob/HEAD/LICENSE.md) 分发。


<a href="https://discord.gg/projectdiscovery"><img src="https://assets.kitploit.com/production/public/readmes/5826/d0624f94cb9ea6401be5a089bb694bc963c47fa82aa3b758c893e3b0bbfdf663.png" width="300" alt="加入 Discord"></a>

</div>
下载工具
https://www.youtube.com/manifest.webmanifest
https://www.youtube.com/s/desktop/4965577f/cssbin/www-main-desktop-watch-page-skeleton.css
https://www.youtube.com/s/desktop/4965577f/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js
https://www.youtube.com/s/desktop/4965577f/jsbin/custom-elements-es5-adapter.vflset/custom-elements-es5-adapter.js
https://www.youtube.com/s/desktop/4965577f/jsbin/webcomponents-sd.vflset/webcomponents-sd.js
https://www.youtube.com/s/desktop/4965577f/jsbin/intersection-observer.min.vflset/intersection-observer.min.js
https://www.youtube.com/s/desktop/4965577f/jsbin/scheduler.vflset/scheduler.js
https://www.youtube.com/s/desktop/4965577f/jsbin/www-i18n-constants-en_GB.vflset/www-i18n-constants.js
https://www.youtube.com/s/desktop/4965577f/jsbin/www-tampering.vflset/www-tampering.js
https://www.youtube.com/s/desktop/4965577f/jsbin/spf.vflset/spf.js
https://www.youtube.com/s/desktop/4965577f/jsbin/network.vflset/network.js
https://www.youtube.com/howyoutubeworks/
https://www.youtube.com/trends/
https://www.youtube.com/jobs/
https://www.youtube.com/kids/
策略描述
heuristic(默认) 智能等待,适应页面行为——等待加载事件、网络空闲和 DOM 稳定
load仅等待浏览器的加载事件
domcontentloaded等待 DOMContentLoaded 事件,并额外等待一定时间(可通过 -dwt 配置)以完成 JavaScript 渲染
networkidle等待网络活动停止
none不等待——导航开始后立即返回
katana -u https://tesla.com -headless -pls domcontentloaded
操作系统Chromium 可执行文件路径Google Chrome 可执行文件路径
Windows(64位)C:\Program Files (x86)\Google\Chromium\Application\chrome.exeC:\Program Files (x86)\Google\Chrome\Application\chrome.exe
Windows(32位)C:\Program Files\Google\Chromium\Application\chrome.exeC:\Program Files\Google\Chrome\Application\chrome.exe
macOS/Applications/Chromium.app/Contents/MacOS/Chromium/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Linux/usr/bin/chromium/usr/bin/google-chrome
CategoryTestMethod/InputExpected Output
关键通过默认凭据可访问的管理面板尝试使用标准管理员密码访问 /admin获得未授权访问或看到管理面板
网络扫描开放端口暴露了易受攻击的服务运行 nmap -p- <target> 以识别开放端口确保必要端口已被过滤或关闭;修补已知的服务
{
"timestamp": "2023-03-20T16:23:58.027559+05:30",
"request": {