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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
toxy — 복원력 테스트 및 시뮬레이션된 네트워크 조건을 위한 해킹 가능한 HTTP 프록시 | Kitploit
도구/GitHubGitHub/h2non/toxy
Vulnerability AnalysisWeb Proxies & InterceptionAPI Security TestingNetwork SecurityPenetration TestingChaos EngineeringArchived
GitHubh2non/toxy

toxy

복원력 테스트 및 시뮬레이션된 네트워크 조건을 위한 해킹 가능한 HTTP 프록시

저장소 보기
2.7k80284년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

toxy Build Status Code Climate NPM js-standard-style

현재 적극적으로 유지 관리되지 않으며, 최신 node.js 런타임에서 작동하지 않을 수 있습니다. toxy 유지 관리에 관심이 있으시면 이슈를 열어주십시오.

해킹 가능한 HTTP 프록시로 서버 장애 시나리오, 시스템 복원력 테스트 및 예상치 못한 네트워크 조건을 시뮬레이션하기 위해 node.js 용으로 구축되었습니다.

이 도구는 주로 장애 저항 테스트를 위해 설계되었으며, toxy는 특히 지연 허용 네트워크 및 서비스 지향 아키텍처에서 시스템의 내결함성 및 복원력 기능을 다루는 데 유용합니다. 이러한 환경에서 toxy는 서비스 간 MitM 프록시 역할을 하여 장애를 주입할 수 있습니다.

toxy를 사용하면 포이즌을 플러그인하고 선택적으로 규칙으로 필터링할 수 있습니다. 이는 본질적으로 필요에 따라 HTTP 흐름을 가로채고 변경하여 대역폭 제한, 네트워크 패킷 지연, 네트워크 지터 지연 주입 또는 사용자 정의 오류 또는 상태 코드로 응답하는 등 중간에서 여러 악의적인 작업을 수행할 수 있습니다.

주로 L7에서 작동하지만 L3 네트워크 조건을 시뮬레이션할 수 있습니다.

toxy는 프로그래밍 방식 또는 HTTP API를 통해 유연하게 사용할 수 있습니다.

rocky 위에 구축되었으며, connect/express에서 표준 미들웨어로 플러그인 가능합니다.

node.js +4가 필요합니다.

목차

  • 기능
  • 소개
    • 왜 toxy인가?
    • 개념
    • 작동 방식
  • 사용법
    • 설치
    • 예제
  • 벤치마크
  • Poisons
    • Poisoning scopes
    • Poisoning phases
    • 내장 Poisons
      • 지연
      • 응답 주입
      • 대역폭
      • 속도 제한
      • 느린 읽기
      • 느린 열기
      • 느린 닫기
      • 스로틀
      • 연결 중단
      • 타임아웃
    • Poisons 작성 방법
  • Rules
    • 내장 Rules
      • 확률
      • 시간 임계값
      • 메서드
      • 콘텐츠 유형
      • 헤더
      • 응답 헤더
      • 본문
      • 응답 본문
      • 응답 상태
    • 서드파티 Rules
    • Rules 작성 방법
  • 프로그래밍 API
  • HTTP API
    • 사용법
    • 인증
    • API
    • 프로그래밍 API
  • 라이선스

기능

  • 완전한 기능을 갖춘 HTTP/S 프록시 (rocky 및 http-proxy 기반)
  • 해킹 가능하고 우아한 프로그래밍 API (connect/express에서 영감을 받음)
  • 외부 관리 및 동적 구성을 위한 관리 HTTP API
  • 중첩 구성을 갖춘 내장 라우터 제공
  • 규칙 기반 필터링을 통한 계층적이고 구성 가능한 포이즈닝
  • 계층적 미들웨어 계층 (전역 및 경로 범위 모두)
  • 미들웨어를 통해 쉽게 확장 가능 (connect/express 미들웨어 기반)
  • 수신 및 발신 트래픽 포이즈닝 모두 지원
  • 내장 포이즌 (대역폭, 오류, 중단, 지연, 느린 읽기...)
  • 규칙 기반 포이즈닝 (확률, HTTP 메서드, 헤더, 본문...)
  • 서드파티 포이즌 및 규칙 지원
  • 미들웨어를 통한 내장 밸런서 및 트래픽 인터셉터
  • rocky의 API 및 기능 상속
  • connect/express (및 대부분의 미들웨어)와 호환
  • 독립형 HTTP 프록시로 실행 가능

소개

왜 toxy인가?

시장에는 toxy와 유사한 다른 솔루션이 있지만, 대부분은 적절한 프로그래밍 제어를 제공하지 않으며 일반적으로 해킹하거나 구성하기 어렵거나 확장이 직접적으로 차단되어 있습니다.

또한 이러한 솔루션의 대부분은 TCP L3 레벨 스택에서만 작동하며, toxy가 제공하려는 것처럼 HTTP L7 프로토콜의 특정 도메인과 특성에서 공통 요구 사항을 다루기 위한 고수준 추상화를 제공하지 않습니다.

toxy는 편리한 추상화와 함께 강력하고 해킹 가능하며 확장 가능한 솔루션을 제공하지만, HTTP 프로토콜 기본 요소를 쉽게 처리할 수 있는 적절한 저수준 인터페이스 기능을 잃지 않습니다.

toxy는 구성, 단순성 및 확장성의 원칙을 기반으로 설계되었습니다. 내장된 계층적 도메인별 미들웨어 계층을 통해 toxy 기능을 자신의 필요에 맞게 쉽게 확장할 수 있습니다.

개념

toxy는 두 가지 지시어를 도입합니다: 포이즌(poisons)과 규칙(rules).

포이즌은 수신 또는 발신 HTTP 트랜잭션을 감염시키는 특정 로직입니다 (예: 지연 주입, 오류로 응답). 하나의 HTTP 트랜잭션은 하나 이상의 포이즌에 의해 감염될 수 있으며, 이러한 포이즌은 전역 또는 경로 수준 트래픽 모두를 감염시키도록 구성할 수도 있습니다.

규칙은 HTTP 요청/응답을 검사하여 주어진 규칙에 따라 HTTP 트랜잭션이 포이즈닝되어야 하는지 여부를 결정하는 일종의 일치 유효성 검사 필터입니다 (예: 헤더 일치, 쿼리 매개변수, 메서드, 본문...). 규칙은 재사용 가능하며 전역, 경로 또는 포이즌 수준을 포함한 다양한 범위에서 수신 및 발신 트래픽 흐름 모두에 적용할 수 있습니다.

작동 방식```

↓ ( Incoming request ) ↓ ↓ ||| ↓ ↓ +-------------+ ↓ ↓ | Toxy Router | ↓ -> Match the incoming request ↓ +-------------+ ↓ ↓ ||| ↓ ↓ +--------------------+ ↓ ↓ | Incoming phase | ↓ -> The proxy receives the request from the client ↓ |~~~~~~~~~~~~~~~~~~~~| ↓ ↓ | ---------------- | ↓ ↓ | | Exec Rules | | ↓ -> Apply configured rules for the incoming request ↓ | ---------------- | ↓ ↓ | ||| | ↓ ↓ | ---------------- | ↓ ↓ | | Exec Poisons | | ↓ -> If all rules passed, then poison the HTTP flow ↓ | ---------------- | ↓ ↓ +~~~~~~~~~~~~~~~~~~~~+ ↓ ↓ / \ ↓ ↓ \ / ↓ ↓ +--------------------+ ↓ ↓ | HTTP dispatcher | ↓ -> Forward the HTTP traffic to the target server, either poisoned or not ↓ +--------------------+ ↓ ↓ / \ ↓ ↓ \ / ↓ ↓ +--------------------+ ↓ ↓ | Outgoing phase | ↓ -> Receives response from target server ↓ |~~~~~~~~~~~~~~~~~~~~| ↓ ↓ | ---------------- | ↓ ↓ | | Exec Rules | | ↓ -> Apply configured rules for the outgoing request ↓ | ---------------- | ↓ ↓ | ||| | ↓ ↓ | ---------------- | ↓ ↓ | | Exec Poisons | | ↓ -> If all rules passed, then poison the HTTP flow before send it to the client ↓ | ---------------- | ↓ ↓ +~~~~~~~~~~~~~~~~~~~~+ ↓ ↓ ||| ↓ ↓ ( Send to the client ) ↓ -> Finally, send the request to the client, either poisoned or not

## 사용법

### 설치```
npm install toxy

예제

더 많은 사용 사례는 examples 디렉토리를 참조하세요.```js var toxy = require('toxy') var poisons = toxy.poisons var rules = toxy.rules

// Create a new toxy proxy var proxy = toxy()

// Default server to forward incoming traffic proxy .forward('http://httpbin.org')

// Register global poisons and rules proxy .poison(poisons.latency({ jitter: 500 })) .rule(rules.probability(25))

// Register multiple routes proxy .get('/download/') .forward('http://files.myserver.net') .poison(poisons.bandwidth({ bps: 1024 })) .withRule(rules.headers({'Authorization': /^Bearer (.)$/i }))

// Infect outgoing traffic only (after the server replied properly) proxy .get('/image/*') .outgoingPoison(poisons.bandwidth({ bps: 512 })) .withRule(rules.method('GET')) .withRule(rules.timeThreshold({ duration: 1000, threshold: 1000 * 10 })) .withRule(rules.responseStatus({ range: [ 200, 400 ] }))

proxy .all('/api/*') .poison(poisons.rateLimit({ limit: 10, threshold: 1000 })) .withRule(rules.method(['POST', 'PUT', 'DELETE'])) // And use a different more permissive poison for GET requests .poison(poisons.rateLimit({ limit: 50, threshold: 1000 })) .withRule(rules.method('GET'))

// Handle the rest of the traffic proxy .all('/*') .poison(poisons.slowClose({ delay: 1000 })) .poison(poisons.slowRead({ bps: 128 })) .withRule(rules.probability(50))

proxy.listen(3000) console.log('Server listening on port:', 3000) console.log('Test it:', 'http://localhost:3000/image/jpeg')

## Benchmark

자세한 내용은 [toxy/benchmark](https://github.com/h2non/toxy/tree/master/benchmark)를 참조하세요.

## 포이즌

포이즌은 프록시 서버에서 HTTP 트랜잭션을 가로채고 변경, 래핑, 수정 및/또는 취소하는 특정 로직을 호스팅합니다.
포이즌은 들어오는 트래픽, 나가는 트래픽 또는 둘 모두에 적용될 수 있습니다([포이즈닝 단계](#poisoning-phases) 참조).

포이즌은 다양한 HTTP 시나리오에 대해 구성 및 재사용이 가능합니다.
FIFO 순서로 비동기적으로 실행됩니다.

### 포이즈닝 범위

`toxy`는 `global`과 `route`라는 두 가지 범위를 기반으로 하는 계층적 설계를 가지고 있습니다.

**Global** 범위는 HTTP 메서드나 경로와 관계없이 프록시 서버가 수신하는 모든 들어오는 HTTP 트래픽을 대상으로 합니다.

**Route** 범위는 특정 HTTP 동사와 URI 경로와 일치하는 모든 들어오는 트래픽을 대상으로 합니다.
도구 다운로드