
evilwaf is a penetration testing tool designed to detect and bypass common Web Application Firewalls (WAFs).
EvilWAF는 승인된 보안 테스트를 위해 설계된 고급 투명 MITM 방화벽 우회 프록시이자 심층 WAF 취약점 스캐너입니다. 전송 계층에서 작동합니다 — 도구의 페이로드, 쿠키 또는 헤더를 건드리지 않습니다. --proxy를 지원하는 모든 도구(ffuz, sqlmap, nuclei 등)와 함께 작동합니다.
--proxy를 지원하는 모든 도구와 함께 작동합니다. 도구 측 설정이 전혀 필요 없습니다.CF-Connecting-IP, CF-Ray, True-Client-IP)를 조작된 값으로 주입하여 WAF의 헤더 신뢰를 테스트하고 IP 허용 목록 우회를 시도합니다.계층 1 네트워크 — 가상 호스트 우회, 민감한 경로 탐색, Host 헤더 조작계층 2 규칙 엔진 — 페이로드 기반 규칙 공백 탐지: SQLi, XSS, RCE, LFI계층 3 속도 제한 — 버스트 및 지속 속도 제한 적용 테스트계층 4 회피 — 페이로드당 10가지 인코딩 변형을 사용한 인코딩 및 정규화 우회계층 5 동작 — 타이밍 분석: 타르핏, JS 챌린지 지연, 백오프 탐지계층 6 헤더 — HTTP 헤더 주입 및 IP 스푸핑 우회계층 7 TLS — TLS 버전 프로빙, SNI 우회, 인증서 핑거프린팅계층 8 메서드 동사 — WebDAV 메서드를 포함한 HTTP 메서드 우회계층 9 세션 — 쿠키 조작, 인증 우회, 세션 고정 탐지계층 10 잘못된 구성 — WAF 잘못된 구성 및 정보 유출 탐지--no-tui 플래그.--scan-only.Cloudflare는 오늘날 세계에서 가장 정교한 웹 애플리케이션 방화벽으로 널리 알려져 있습니다. 단순한 규칙 집합이 아니라 웹 애플리케이션을 보호하기 위해 동시에 작동하는 여러 기술을 결합한 다중 계층 방어 시스템입니다.
네트워크 수준에서 Cloudflare는 전 세계 수백 개의 데이터 센터에 걸쳐 운영되므로 모든 요청이 동시에 수백만 웹사이트의 트래픽 패턴을 파악할 수 있는 인프라를 통과합니다. 이러한 글로벌 가시성은 가장 강력한 장점 중 하나입니다 — 전 세계 어디에서 발생하는 공격 패턴을 감지하고 몇 초 안에 모든 보호 대상 속성에 완화 조치를 배포할 수 있습니다.
검사 수준에서 Cloudflare는 TCP/IP 핑거프린트, TLS 핑거프린트, HTTP/2 프레임 구조, 헤더 순서, 요청 타이밍, 세션 간 동작 패턴, 페이로드 콘텐츠 등 여러 차원을 동시에 분석합니다. 이러한 신호 중 단 하나만으로는 요청을 차단하기에 충분하지 않지만, Cloudflare는 이 모든 것을 상호 연관시켜 요청별 위험 점수를 산출합니다.
머신러닝 구성 요소가 Cloudflare를 기존 WAF와 근본적으로 다르게 만듭니다. 규칙 기반 WAF가 알려진 악성 패턴을 찾는 반면, Cloudflare의 ML 모델은 페타바이트 규모의 실제 공격 트래픽으로 학습됩니다. 이 모델은 전송 계층에서 정상적인 브라우저 트래픽이 어떤 모습인지 — TCP 옵션의 정확한 순서, TLS ClientHello의 정밀한 구조, HTTP/2 SETTINGS 프레임의 순서 — 학습하고, 페이로드 자체가 깨끗해 보이더라도 기준선에서 벗어나는 모든 것을 플래그합니다. 이것이 Cloudflare에 대해 단순히 페이로드를 인코딩하거나 헤더를 회전시키는 것만으로는 충분하지 않은 이유입니다. 우회는 애플리케이션 계층이 아닌 전송 계층에서 이루어져야 합니다.
대부분의 WAF 우회 기법은 규칙 엔진을 대상으로 합니다 — 페이로드 난독화, 인코딩 변형 사용, 공격 문자열을 매개변수에 분산. 이러한 기법은 서명 기반 WAF에는 효과적입니다. 그러한 WAF는 페이로드 콘텐츠만 보기 때문입니다.
Cloudflare의 방어는 페이로드가 검사되기 전에 작동합니다. Python HTTP 라이브러리의 요청은 완전히 무해한 페이로드를 보내더라도 TLS 핑거프린트가 알려진 브라우저와 일치하지 않기 때문에 챌린지되거나 차단될 수 있습니다. 즉, 콘텐츠가 분석되기 전에 요청을 보낸 도구가 식별된다는 뜻입니다. Cloudflare는 이를 동작 핑거프린팅이라고 부르며, 기본 페이로드가 올바른 경우에도 표준 침투 테스트 도구가 Cloudflare를 상대로 실패하는 주된 이유입니다.
Cloudflare의 속도 제한도 지능적입니다 — 단순히 IP당 초당 요청 수를 세는 것이 아닙니다. 세션 간 요청 패턴을 추적하고 동일한 ASN을 공유하는 IP들의 동작을 상호 연관시키며, 하드 차단보다는 점진적인 챌린지를 적용하므로 자동화된 테스트로 임계값을 감지하기 어렵게 만듭니다.
EvilWAF의 개발자는 Cloudflare를 공격 대상이 아니라 연구 대상으로 접근합니다. 연구 방법론은 체계적입니다: Cloudflare가 다양한 전송 계층 신원에 어떻게 반응하는지 관찰하고, 어떤 신호가 챌린지와 차단, 조용한 통과를 유발하는지 측정하며, 실시간 데이터에서 동작의 통계적 모델을 구축합니다.
이것은 문서를 읽거나 CVE를 연구하는 것과 근본적으로 다릅니다. Cloudflare의 동작은 지속적으로 변하기 때문에 — 모델이 재학습되고, 임계값이 조정되며, 새로운 신호가 추가되기 때문에 — 외부 소스만으로는 완전히 이해할 수 없습니다. 이를 이해하는 유일한 신뢰할 수 있는 방법은 실시간, 통제된, 승인된 실험과 수집된 데이터의 세심한 분석입니다.
이 연구의 목표는 보안 연구 커뮤니티가 2026년 기술 수준에서 WAF 우회가 실제로 어떤 모습인지 이해하도록 돕는 도구와 지식을 생산하는 것입니다 — 피해를 주기 위한 것이 아니라, 방어자들이 자신이 의존하는 기술의 실제 역량과 한계를 이해하도록 보장하기 위한 것입니다. Cloudflare가 요청을 탐지하고 차단하는 방식을 이해하는 보안 연구자는 그 뒤에 있는 애플리케이션이 실제로 보호되는지 여부를 테스트하는 데 더 잘 준비되어 있습니다.
중요: EvilWAF를 사용하기 전에 이 내용을 읽으십시오
불법 사용 사례에 대해서는 지원하지 않지만, 승인된 테스트에서 목표를 달성하도록 도와드리겠습니다.
EvilWAF는 Matrix Leons가 만들었습니다.
EvilWAF가 유용했다면 개발을 지원해 주시기 바랍니다. 여러분의 기여는 이 프로젝트가 유지되고 성장하는 데 도움이 됩니다.
# EvilWAF generates a local CA to intercept HTTPS traffic. Trust it once.
# Run EvilWAF first — CA is auto-generated at startup
# Then find the cert:
ls /tmp/evilwaf_ca_*/evilwaf-ca.pem
# Linux — trust system-wide
sudo cp /tmp/evilwaf_ca_*/evilwaf-ca.pem /usr/local/share/ca-certificates/evilwaf-ca.crt
sudo update-ca-certificates
# macOS
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain \
/tmp/evilwaf_ca_*/evilwaf-ca.pem
# For tools like sqlmap, pass --ignore-proxy=False or equivalent for your tool.
# 1. Create virtual environment
python3 -m venv myenv
# 2. Activate virtual environment
source myenv/bin/activate
# 3. Clone and install
git clone https://github.com/matrixleons/evilwaf.git
cd evilwaf
pip3 install -r requirements.txt
# 4. Build C extension (optional, improves scanner performance)
python setup_fast_scanner.py build_ext --inplace
python3 evilwaf.py -h
docker build -t evilwaf .
docker run -it evilwaf -t https://example.com
# Basic — Standard Proxy Mode
python3 evilwaf.py -t https://target.com
# Auto-Hunt Origin IP Behind WAF
python3 evilwaf.py -t https://target.com --auto-hunt
# EvilWAF runs 10 scanners in parallel, ranks candidates by confidence, then asks:
# [?] Use 1.2.3.4 as origin IP for bypass? [y/n]:
# If confirmed, all traffic goes directly to the real server, bypassing WAF completely.
# Manual Origin IP (if already known)
python3 evilwaf.py -t https://target.com --server-ip 1.2.3.4
# With Tor IP Rotation
python3 evilwaf.py -t https://target.com --enable-tor
# Headless Mode (No TUI)
python3 evilwaf.py -t https://target.com --no-tui
# WAF Vulnerability Scanner — alongside proxy
python3 evilwaf.py -t https://target.com --scan-vulns
# WAF Vulnerability Scanner — standalone, no proxy
python3 evilwaf.py -t https://target.com --scan-only
# WAF Vulnerability Scanner — custom rate and output
python3 evilwaf.py -t https://target.com --scan-only --scan-rps 5.0 --scan-output ./results
# Upstream Proxy
python3 evilwaf.py -t https://target.com --upstream-proxy socks5://127.0.0.1:1080
python3 evilwaf.py -t https://target.com --upstream-proxy http://user:[email protected]:8080
python3 evilwaf.py -t https://target.com --proxy-file proxies.txt
# Custom Listen Address and Port
python3 evilwaf.py -t https://target.com --listen-host 0.0.0.0 --listen-port 9090
EvilWAF가 실행 중이면 프록시를 통해 모든 도구를 EvilWAF에 연결하세요:
# sqlmap
sqlmap -u "https://target.com/page?id=1" --proxy=http://127.0.0.1:8080 --ignore-proxy=False
# ffuf
ffuf -u https://target.com/FUZZ -x http://127.0.0.1:8080
# nuclei
nuclei -u https://target.com -proxy http://127.0.0.1:8080
# curl (for testing)
curl -x http://127.0.0.1:8080 https://target.com
export SHODAN_API_KEY="your_key"
export SECURITYTRAILS_API_KEY="your_key"
export VIRUSTOTAL_API_KEY="your_key"
export CENSYS_API_ID="your_id"
export CENSYS_API_SECRET="your_secret"
API 키 없이도 EvilWAF는 무료 소스(DNS 기록, SSL 인증서, HTTP 헤더, 파비콘 해시, 서브도메인 열거)를 사용하여 계속 실행됩니다.
기여를 환영합니다. EvilWAF는 계속 성장하고 있으며 개선할 영역이 많이 있습니다.
# Fork and clone
git clone https://github.com/matrixleons/evilwaf/fork
git checkout -b my-new-feature
git commit -am 'Add some feature'
git push origin my-new-feature
# Submit a pull request
Apache License 버전 2.0에 따라 라이선스가 부여됩니다.
_fast_scanner.cEvilWAF의 스캐너 아키텍처 — 영구 세션, 통계적 신뢰도, 다중 계층 분석, 타이밍 이상 탐지 — 는 이러한 종류의 연구가 빠른 스캔이 아닌 긴 관찰 기간과 엄격한 데이터 수집을 요구하기 때문에 존재합니다. 실제 WAF 연구는 시간이 걸리며, 도구도 이를 반영해야 합니다.