Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
waf-tester — WAF 기능 테스트를 위한 프로그램 | Kitploit
도구/GitHubGitHub/kpomin57/waf-tester
Vulnerability ScannersIDS/IPS EvasionAPI Security TestingWAF BypassWeb SecurityPenetration TestingMisconfigurationLearning & Education
GitHubkpomin57/waf-tester

waf-tester

WAF 기능 테스트를 위한 프로그램

저장소 보기
26103개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🛡️ WAF Tester

엔터프라이즈 WAF 평가 도구 — 실제 공격 페이로드. 실제 결과. 규정 준수 보고서.

WAF Tester는 사용자가 제공한 URL에 실제 공격 페이로드를 전송하고 차단 여부를 보고하여 웹 애플리케이션 방화벽을 평가합니다. Windows 데스크톱 앱(Electron)과 어디서나 실행되는 Python CLI로 제공됩니다.

WAF Tester Screenshot


⚠️ 법적 고지

이 도구는 승인된 보안 테스트 전용입니다. 소유한 시스템 또는 명시적인 서면 허가를 받은 시스템에만 사용하십시오. 제3자 시스템에 대한 무단 테스트는 컴퓨터 사기 및 남용 법률(CFAA) 및 해당 관할권의 동등한 법률을 위반할 수 있습니다. 저자는 오용에 대한 어떠한 책임도 지지 않습니다.


기능

테스트 범위 — 6개 제품군의 90개 테스트

SuiteTestsWhat It Covers
OWASP / CWE Core44SQL 인젝션 (12개 변종), XSS (10개 변종), 경로 탐색, 명령어 인젝션, XXE, SSRF, Log4Shell, SSTI, 오픈 리다이렉트
Rate Limiting3버스트 플러드 (30개 동시), 순차 플러드, X-Forwarded-For IP 로테이션 우회
Bot Detection10sqlmap, Nikto, Nmap, Scrapy, Masscan, HeadlessChrome, python-requests, curl, 빈 UA, Accept 헤더 누락
Bypass Attempts15이중 URL 인코딩, 유니코드 전각, 널 바이트, 대소문자 변형, 주석 난독화, CRLF 인젝션, 호스트 헤더 인젝션, 메소드 오버라이드, 경로 트릭
API Security10GraphQL 인트로스펙션/배치/열거, JWT none 알고리즘 및 알고리즘 혼동, 대량 할당, HTTP 메서드 변조, BOLA, Content-Type 혼동
Business Logic8음수 수량, 0원 제출, 관리자 엔드포인트 접근, HTTP 파라미터 오염, 계정 열거, 과도한 데이터 노출, 강제 브라우징, 권한 상승

규정 준수 매핑

모든 테스트는 하나 이상의 규정 준수 프레임워크에 태그되어 있습니다:

  • OWASP Top 10 2021 (A01~A10)
  • CWE (공통 약점 열거)
  • NIST 800-53 (SI-10, AC-3, SC-5, IA-5 등)
  • PCI-DSS 4.0 (요구 사항 6.4)

탐지 인텔리전스

  • 기준 비교 — 테스트 실행 전에 깨끗한 GET을 가져온 다음 모든 응답을 비교하여 오탐지를 줄입니다.
  • 신뢰도 점수 — 결과가 이분법적인 통과/실패가 아닌 HIGH, LIKELY 또는 UNCERTAIN으로 평가됩니다.
  • 다중 신호 평가 — 상태 코드, WAF 키워드 탐지, 응답 길이 차이가 모두 평결에 영향을 미칩니다.

인증 지원

  • Bearer 토큰
  • API 키 (사용자 정의 헤더 이름)
  • 쿠키 / 세션 토큰
  • 기본 인증 (사용자 이름 + 비밀번호)

Windows 데스크톱 앱 (Electron)

사전 요구 사항

  • Node.js 18 이상

소스에서 실행

root@kitploit:~
git clone https://github.com/kpomin57/waf-tester.git
cd waf-tester
npm install
npm start

Windows 설치 프로그램 빌드

root@kitploit:~
npm run build

출력은 dist/에 NSIS 설치 프로그램과 포터블 .exe로 나타납니다. 대상 컴퓨터에는 사전 요구 사항이 필요하지 않습니다. Electron이 자체 런타임을 번들로 제공합니다.


Python CLI 버전

Python이 가능한 모든 곳에서 실행되는 단일 파일 Python 버전 — Linux 서버, CI/CD 파이프라인, Docker 컨테이너, WSL 또는 Windows .exe를 사용할 수 없는 모든 환경.

사전 요구 사항

root@kitploit:~
pip install rich requests

기본 사용법

root@kitploit:~
python waf_tester.py --url https://target.example.com

90개 테스트를 모두 실행하고, 인증 확인을 요청하며, 색상 코딩된 결과를 터미널에 출력하고, JSON 및 HTML 보고서를 현재 디렉토리에 저장합니다.

옵션

예제

root@kitploit:~
# 모든 제품군 실행
python waf_tester.py --url https://app.example.com

# OWASP 및 API 제품군만 실행
python waf_tester.py --url https://app.example.com --suites owasp,api

# Bearer 토큰 인증
python waf_tester.py --url https://app.example.com/api \
  --auth-type bearer --auth-value eyJhbGciOiJIUzI1NiJ9...

# API 키 인증
python waf_tester.py --url https://app.example.com/api \
  --auth-type apikey --auth-header X-API-Key --auth-value mykey123

# 폴더에 보고서 저장, 확인 건너뛰기 (CI/CD)
python waf_tester.py --url https://app.example.com \
  --output-dir ./reports --confirm

# 터미널 출력만 — 파일 저장 안 함
python waf_tester.py --url https://app.example.com --output terminal

# Burp Suite를 통한 트래픽 라우팅
python waf_tester.py --url https://app.example.com --proxy http://127.0.0.1:8080

Docker에서 실행

root@kitploit:~
docker run --rm -v $(pwd)/reports:/reports \
  python:3.12-slim sh -c \
  "pip install rich requests -q && python waf_tester.py \
   --url https://target.example.com \
   --output-dir /reports --confirm"

CI/CD에서 실행 (GitHub Actions)

root@kitploit:~
- name: WAF Evaluation
  run: |
    pip install rich requests
    python waf_tester.py \
      --url ${{ secrets.WAF_TARGET_URL }} \
      --suites owasp,api,bypass \
      --output json \
      --output-dir ./reports \
      --confirm

- name: Upload report
  uses: actions/upload-artifact@v3
  with:
    name: waf-report
    path: reports/

Burp Suite 통합

Python CLI는 모든 테스트 트래픽을 Burp Suite를 통해 라우팅하여 WAF Tester가 보내는 모든 페이로드의 전체 HTTP 기록을 제공합니다. 이 기능은 요청 및 응답의 수동 검사, 페이로드 미세 조정, 예상치 못한 WAF 동작 문제 해결, 흥미로운 결과에 Burp의 자체 스캐너 또는 리피터 사용에 유용합니다.

작동 방식

Burp Suite는 로컬 프록시 리스너(기본값 127.0.0.1:8080)를 실행합니다. WAF Tester의 프록시 환경 변수를 해당 주소로 지정하면 도구가 만드는 모든 요청이 대상에 도달하기 전에 Burp를 통과합니다. WAF가 본 것과 정확히 동일한 상태 코드, 헤더, 본문을 포함한 전체 요청 및 응답과 함께 각 페이로드를 Burp의 HTTP 기록에서 볼 수 있습니다.

설정

1. Burp Suite를 시작하고 프록시 리스너가 활성 상태인지 확인:

Burp 열기 → 프록시 → 프록시 설정 → 리스너가 127.0.0.1:8080에 있는지 확인 (다른 포트인 경우 기록).

2. Burp의 CA 인증서를 내보내고 신뢰 (일회성 설정):

WAF Tester는 HTTPS 대상에 연결하므로 Burp가 TLS를 가로채야 합니다. Burp → 프록시 → 프록시 설정 → CA 인증서 가져오기/내보내기 → DER로 내보내기로 이동합니다. 시스템에서 신뢰할 수 있는 루트 CA로 설치하거나 아래 환경 변수를 설정하여 확인을 건너뜁니다(실험실 사용에는 적합하지만 프로덕션에는 적합하지 않음).

3. --proxy와 함께 WAF Tester 실행:

root@kitploit:~
python waf_tester.py --url https://target.example.com --proxy http://127.0.0.1:8080

On Windows:

root@kitploit:~
python waf_tester.py --url https://target.example.com --proxy http://127.0.0.1:8080

환경 변수를 계속 사용할 수도 있습니다:

root@kitploit:~
HTTPS_PROXY=http://127.0.0.1:8080 HTTP_PROXY=http://127.0.0.1:8080 \
python waf_tester.py --url https://target.example.com

4. Burp의 인터셉션 끄기:

Burp → 프록시 → 인터셉트에서 인터셉션이 꺼져 있는지 확인하십시오. 그렇지 않으면 Burp가 모든 요청에서 일시 중지되어 수동으로 전달할 때까지 기다리며 WAF Tester가 시간 초과됩니다. Burp가 트래픽을 가로채지 않고 수동으로 기록하기를 원합니다.

5. Burp의 HTTP 기록에 요청이 도착하는지 확인:

각 WAF Tester 페이로드는 별도의 항목으로 나타납니다. 아무 요청이나 마우스 오른쪽 버튼으로 클릭하여 Repeater로 보내 수동으로 조정하고 다시 보내거나 Intruder로 보내 추가 퍼징을 할 수 있습니다.

TLS 오류가 발생하는 경우

Burp CA 인증서가 신뢰되지 않는 경우 도구에서 SSL 확인을 일시적으로 비활성화하여 --no-verify 해결 방법을 추가합니다. 또는 시스템 전체에 Burp CA 인증서를 신뢰하거나 초기 테스트를 위해 HTTP(HTTPS 아님) 대상을 사용합니다.


결과 해석

신뢰도 수준:

  • HIGH — 모호함이 없는 강력한 차단 상태 (403, 406, 429)
  • LIKELY — 응답 본문에 WAF 키워드가 있거나 기준과 상태가 다름
  • UNCERTAIN — 합법적인 앱 오류일 수 있는 소프트 차단 (400, 503)

권장 테스트 워크플로우

  1. Juice Shop에 대해 WAF 없이 실행 → 대부분 우회됨 확인 (도구가 올바르게 작동 중)
  2. ModSecurity/OWASP CRS에 대해 실행 → 대부분 차단됨 확인 (점수 논리 작동)
  3. 대상 WAF에 대해 실행 → 실제 평가 결과
root@kitploit:~
# Juice Shop (WAF 없음 — 모두 우회 예상)
docker run -d -p 3000:3000 bkimminich/juice-shop

# ModSecurity with OWASP CRS (대부분 차단 예상)
docker run -d -p 80:80 owasp/modsecurity-crs:nginx

프로젝트 구조

root@kitploit:~
waf-tester/
├── src/
│   ├── main.js          # Electron 메인 프로세스 — 모든 테스트 로직 및 IPC
│   ├── preload.js       # 보안 컨텍스트 브리지
│   └── renderer/
│       ├── index.html   # 앱 셸
│       ├── styles.css   # 다크 밀리터리/SOC UI 테마
│       └── app.js       # UI 로직, 필터, 라이브 피드, 내보내기
├── waf_tester.py        # Python CLI — 단일 파일, 설정 불필요
├── package.json
└── README.md

변경 로그

v1.2.0

  • 40개에서 6개 제품군의 90개 테스트로 확장
  • API 보안 제품군 추가 (GraphQL, JWT, 대량 할당, BOLA, 메서드 변조)
  • 비즈니스 로직 제품군 추가 (가격 조작, 권한 상승, 강제 브라우징)
  • 모든 테스트에 규정 준수 태그 추가 (OWASP, CWE, NIST, PCI-DSS)
  • 결과 보기에 프레임워크 필터 추가
  • Python CLI (waf_tester.py) 추가 — 단일 파일, 어디서나 실행
  • 전체 엔터프라이즈 UI 개편 — SVG 점수 링, 애니메이션 스캔 라인, 육각형 그리드 배경

v1.1.0

  • 인증 지원 추가 (Bearer, API 키, 쿠키, 기본 인증)
  • 기준 비교 및 신뢰도 점수 추가 (HIGH / LIKELY / UNCERTAIN)
  • 6개의 실제 브라우저 UA에 대한 User-Agent 로테이션 추가
  • X-WAF-Tester 헤더 토글 추가 (옵트인, 기본적으로 꺼짐)
  • 각 스캔 전에 권한 확인란 추가
  • 내보내기 토스트 가시성 및 우회 테스트의 CRLF 충돌 수정

v1.0.0

  • 초기 릴리스 — 40개 테스트, 4개 제품군, JSON + HTML 내보내기

라이선스

MIT — 자세한 내용은 LICENSE를 참조하세요.


체크리스트 규정 준수를 넘어서는 WAF 검증이 필요한 보안 엔지니어를 위해 제작되었습니다.

도구 다운로드
FlagDescriptionDefault
--url대상 URL (필수)—
--suites실행할 쉼표로 구분된 제품군all
--auth-typenone / bearer / apikey / cookie / basicnone
--auth-value토큰, 쿠키 문자열 또는 API 키 값—
--auth-headerAPI 키 인증을 위한 헤더 이름X-API-Key
--auth-user기본 인증을 위한 사용자 이름—
--auth-pass기본 인증을 위한 비밀번호—
--no-baseline기준 비교 비활성화off
--no-rotate-uaUser-Agent 로테이션 비활성화off
--waf-headerX-WAF-Tester 식별 헤더 전송off
--outputterminal, json, html (comma-separated)모두
--output-dir보고서 파일 저장 디렉토리.
--timeout요청당 제한 시간(초)10
--proxy모든 요청에 대한 프록시 URL (예: http://127.0.0.1:8080)off
--confirm인증 확인 프롬프트 건너뛰기off
ScoreGradeMeaning
90–100%A우수 — WAF가 거의 모든 공격 벡터를 차단함
80–89%B좋음 — 조사할 가치가 있는 사소한 격차
65–79%C보통 — 눈에 띄는 우회 벡터 존재
50–64%D나쁨 — 상당한 보호 격차
< 50%F심각 — WAF가 대체로 비효과적