A local MITM proxy that lets you control TLS fingerprints (JA3/JA4), HTTP/2 fingerprints, HTTP header order, User-Agent, and source IP headers — all from a single YAML config file.
A Chrome extension is included for toggling the proxy and switching fingerprint profiles directly from the browser toolbar without restarting the proxy.
Intended for authorized security testing of WAF bot-detection systems. Route curl, browsers, or Playwright through the proxy to observe how different fingerprint combinations are classified.
How it works
curl / browser / Playwright │ HTTP CONNECT (to proxy) ▼ ┌─────────────────────────────────────────┐ │ impersonate-proxy │ │ │ │ MITM TLS ◄──────────────► uTLS │ │ (our CA cert) (custom JA3/4) │ │ │ │ Header rewriter (UA, order, add/del) │ │ HTTP/2 framer (SETTINGS, WINDOW_UPDATE│ │ pseudo-header order) │ └─────────────────────────────────────────┘ │ Custom TLS ClientHello + HTTP/2 ▼ Target server / WAF
Layer What you can control TLS Cipher suites, extensions, their order (JA3 / JA4) via uTLS presets or a fully custom custom_hello spec HTTP/1.1 Header order, User-Agent, add/remove any header, IP spoofing ( X-Forwarded-For / True-Client-IP ) HTTP/2 SETTINGS values & order, WINDOW_UPDATE, pseudo-header order (HTTP/2 fingerprint)
Prerequisites
macOS or Linux (amd64 / arm64)
or (amd64 / arm64) Go 1.22+
macOS
... continue reading