Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
cats — 自动化REST API模糊测试和负面测试工具,针对OpenAPI端点。无需编码即可生成、运行并报告数千个自我修复测试,涵盖边界和安全场景。 | Kitploit
工具/GitHubGitHub/endava/cats
漏洞扫描器API安全测试Web安全模糊测试
GitHubendava/cats

cats

自动化REST API模糊测试和负面测试工具,针对OpenAPI端点。无需编码即可生成、运行并报告数千个自我修复测试,涵盖边界和安全场景。

查看仓库
1.4k903521小时5分前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CATS logo

CI Commits

License Java Version GraalVM Quality Gate Status Coverage Bugs Code Smells

CATS 文档可在 https://endava.github.io/cats/ 获取

REST API 模糊测试与负向测试工具。无需编写代码,几分钟内即可运行数千个自愈式 API 测试!

  • 全面:测试基于大量场景自动生成,覆盖每一个字段和请求头
  • 智能:测试基于数据类型和约束生成;每个 Fuzzer 根据被测场景具有特定的预期
  • 高度可配置:提供大量自定义选项:你可以筛选特定的 Fuzzer、HTTP 响应码、HTTP 方法、请求路径,提供业务上下文以及更多
  • 自愈:由于测试是自动生成的,任何 OpenAPI 规范的变更都会被自动识别
  • 易于学习:学习曲线平缓,配置和语法直观
  • 快速:自动化的编写、运行和报告测试流程,几分钟内即可覆盖数千个场景

时间紧张?请查看1 分钟快速入门指南!

概述

通过使用简单且极简的语法以及平缓的学习曲线,CATS(Contract API Testing and Security,契约 API 测试与安全)使你能够在几分钟内生成数千个 API 测试,且无需编写代码。 所有测试都基于预定义的 100+ Fuzzer 集合自动生成、运行并报告。 这些 Fuzzer 覆盖了广泛的边界测试和负向场景,从完全随机的大型 Unicode 值到基于请求数据类型和约束精心构造的、依赖上下文的值。 更进一步,你还可以利用 CATS 动态生成请求负载的特性,编写简单的端到端功能测试。

HTML 报告

CATS

命令行

CATS

终端界面

在普通模糊测试命令上使用 --tui,即可在不离开终端的情况下跟踪执行过程并检查结果:

cats --contract openapi.yml --server http://localhost:8080 --tui

概览界面显示 Paths、运行配置、响应时间、HTTP 响应码、成功/警告/错误,以及使用与 CLI 和 HTML 报告相同术语的 Fuzzer 运行情况。Fuzzer 表格会使用所有可用的终端行;当完整列表无法显示时,可使用 j/k 或 Page Up/Page Down 浏览。按 2 查看执行详情,按 3 查看执行摘要和质量门禁结果,按 4 按结果原因查看执行详情,按 5 查看包含的 Paths,按 6 查看按响应时间排序的已执行测试。结果原因和 Path 行可按 Enter 打开其对应的测试。

使用方向键或 j/k 选择测试,按 Enter 在全屏详情视图中检查其请求、响应、结果、跟踪和重放命令。在测试列表中按 / 可搜索测试 ID、Fuzzer、路径、场景、结果原因、方法、结果和响应码。a、e、w、s 和 i 分别筛选全部、错误、警告、成功和跳过的结果。Esc 首先清除当前搜索,否则返回上一屏幕;1 打开概览。

按 q 离开界面。在运行过程中,这会请求取消,尽可能完成当前测试,保留已写入的结果,并以状态码 130 退出。执行完成后,q 正常退出。

TUI 需要至少 80 列 × 24 行的交互式终端,且不能与 --dryRun 组合使用。它适用于基于 OpenAPI 的模糊测试命令;独立的 template 命令继续使用普通 CLI 输出。TUI 默认保留最近 10,000 条测试详情;可使用 --tuiMaxResults 选择不同的正数上限。当较早的详情被丢弃时,聚合统计仍覆盖完整运行。

CATS 使用教程

以下是一系列包含分步指南的文章,介绍如何使用 CATS:

  • 使用 CATS 测试 GitHub API
  • 如何无需编写代码编写自愈式功能测试

CATS 发现的一些 bug

  • https://github.com/hashicorp/vault/issues/13274 | https://github.com/hashicorp/vault/issues/13273
  • https://github.com/hashicorp/vault/issues/13225 | https://github.com/hashicorp/vault/issues/13232
  • https://github.com/go-gitea/gitea/issues/19397 | https://github.com/go-gitea/gitea/issues/19398
  • https://github.com/go-gitea/gitea/issues/19399

安装

Homebrew

> brew tap endava/tap
> brew install cats

手动安装

CATS 同时以可执行 JAR 和原生二进制文件的形式提供。原生二进制文件无需安装 Java。

下载适用于你操作系统的原生二进制文件后,可以将其添加到 PATH,以便像其他命令行工具一样执行它:

sudo cp cats /usr/local/bin/cats

你还可以通过下载 cats_autocomplete 脚本获得自动补全,然后执行:

source cats_autocomplete

要获得持久化的自动补全,请将上述行添加到 .zshrc 或 .bashrc 中,但请确保为 cats_autocomplete 脚本使用完整路径。

你也可以查看 cats_autocomplete 源码以了解其他设置方式。

Windows 没有原生二进制文件,但你可以使用 uberjar 版本。这需要安装 Java 25+。

你可以将其作为 java -jar cats.jar 运行。

前往 releases 页面下载最新版本:https://github.com/Endava/cats/releases。

TLS

CATS 默认验证服务器证书和主机名。对于使用自签名证书的可信测试环境,可以通过 --insecure 显式禁用验证。

对于双向 TLS,请使用 --sslKeystore、--sslKeystorePwd 和 --sslKeyPwd。如果省略 --sslKeyPwd,CATS 将使用 keystore 密码作为私钥密码。

密钥与重放

CATS 默认在报告中屏蔽认证头和敏感查询参数,将请求值替换为可重放的 $$EnvironmentVariable 占位符。它会在运行 CATS 的目录中创建不含密钥值的 replay.env.example。

当存在 ./.env 时,CATS 会自动加载它。使用 --envFile path/to/cats.env 选择不同的文件,或使用 --noEnvFile 在 normal、random、functional、template 和 replay 命令中禁用 dotenv 加载。进程环境变量优先于 dotenv 值。仅在明确需要未屏蔽的报告和控制台输出时使用 --showSecrets。

响应安全预算

CATS 会取消超过 --callTimeout 的调用,该值默认为 20 秒,并且最多捕获 --maxResponseBytes,该值默认为解压后响应体的 10 MiB。将任一选项设置为 0 可禁用其限制。被截断的响应会保留其状态和响应头,跳过完整正文验证,并以专用警告进行报告。

当启用 --dryRun 时,CATS 会解析本地配置并计算测试数量,而不会调用目标服务、WFC 登录端点、认证脚本、更新检查或报告写入器。

从源码构建

你可以在本地机器上从源码构建 CATS。你需要 Java 25。Maven 已随附。

在运行首次构建之前,请确保执行 ./mvnw clean。CATS 使用了 OKHttp 的一个分支,该分支将在本地以 5.X.X-CATS 版本安装,因此不必担心覆盖官方版本。

你可以使用以下 Maven 命令将项目构建为 uberjar:

./mvnw package -Dquarkus.package.type=uber-jar

你将在 target 文件夹中得到一个 cats-runner.jar。你可以使用 java -jar cats-runner.jar ... 运行它。

你还可以使用 GraalVM Java 版本构建原生镜像。

./mvnw package -Pnative

关于单元测试的说明

在运行单元测试时,你可能会看到一些 error 日志消息。这些是测试 Fuzzer 负向场景时的预期行为。

贡献

请参阅 CONTRIBUTING.md。

下载工具