Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cats — OpenAPI 엔드포인트를 위한 자동화된 REST API 퍼저 및 네거티브 테스팅 도구입니다. 코딩 노력 없이 수천 개의 자가 치유 테스트를 생성, 실행 및 보고하며, 경계 및 보안 시나리오를 포괄합니다. | Kitploit
도구/GitHubGitHub/endava/cats
Vulnerability ScannersAPI Security TestingWeb SecurityFuzzing
GitHubendava/cats

cats

OpenAPI 엔드포인트를 위한 자동화된 REST API 퍼저 및 네거티브 테스팅 도구입니다. 코딩 노력 없이 수천 개의 자가 치유 테스트를 생성, 실행 및 보고하며, 경계 및 보안 시나리오를 포괄합니다.

저장소 보기
1.4k90352일 전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 테스트를 생성할 수 있습니다. 모든 테스트는 사전 정의된 100개 이상의 Fuzzer 세트를 기반으로 자동으로 생성, 실행 및 보고됩니다. Fuzzer는 완전히 무작위적인 대형 유니코드 값부터 요청 데이터 타입과 제약 조건에 기반한 잘 만들어진 컨텍스트 의존적 값에 이르기까지 광범위한 경계 테스팅 및 네거티브 시나리오를 커버합니다. 더 나아가, CATS가 요청 페이로드를 동적으로 생성한다는 점을 활용하여 간단한 엔드투엔드 기능 테스트를 작성할 수도 있습니다.

HTML 보고서

CATS

명령줄

CATS

터미널 인터페이스

일반 퍼징 명령에 --tui를 사용하면 터미널을 벗어나지 않고 실행 상황을 추적하고 결과를 검사할 수 있습니다:

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

개요 화면에는 Paths, 실행 구성, 응답 시간, HTTP 응답 코드, 성공/경고/오류, 그리고 실행된 Fuzzer가 CLI 및 HTML 보고서와 동일한 용어로 표시됩니다. 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열 x 24행의 대화형 터미널이 필요하며 --dryRun과 함께 사용할 수 없습니다. OpenAPI 기반 퍼징 명령에서 사용할 수 있으며, 독립 실행형 template 명령은 계속 일반 CLI 출력을 사용합니다. TUI는 기본적으로 최근 10,000개의 테스트 세부 정보를 유지하며, --tuiMaxResults로 다른 양수 제한을 선택할 수 있습니다. 오래된 세부 정보가 삭제되어도 집계 통계는 전체 실행을 계속 커버합니다.

CATS 사용 방법에 대한 튜토리얼

다음은 CATS 사용 방법에 대한 단계별 가이드 문서 목록입니다:

  • CATS로 GitHub API 테스트하기
  • 코딩 없이 자가 치유 기능 테스트를 작성하는 방법

CATS가 발견한 몇 가지 버그

  • 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가 설치되어 있지 않아도 됩니다.

OS 네이티브 바이너리를 다운로드한 후 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로 실행할 수 있습니다.

최신 버전을 다운로드하려면 릴리스 페이지를 방문하세요: https://github.com/Endava/cats/releases.

TLS

CATS는 기본적으로 서버 인증서와 호스트 이름을 검증합니다. 자체 서명 인증서를 사용하는 신뢰할 수 있는 테스트 환경에서는 --insecure로 검증을 명시적으로 비활성화할 수 있습니다.

상호 TLS의 경우 --sslKeystore, --sslKeystorePwd 및 --sslKeyPwd를 사용하세요. --sslKeyPwd를 생략하면 CATS는 개인 키에 키스토어 비밀번호를 사용합니다.

시크릿 및 재생

CATS는 기본적으로 보고서에서 인증 헤더와 민감한 쿼리 매개변수를 마스킹하여 요청 값을 재생 가능한 $$EnvironmentVariable 자리 표시자로 대체합니다. CATS가 실행되는 디렉터리에 시크릿 값 없이 replay.env.example을 생성합니다.

CATS는 ./.env가 있으면 자동으로 로드합니다. 다른 파일을 선택하려면 --envFile path/to/cats.env를 사용하고, normal, random, functional, template 및 replay 명령에서 dotenv 로딩을 비활성화하려면 --noEnvFile을 사용하세요. 프로세스 환경 변수는 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를 참조하세요.

도구 다운로드