Skip to content
Tech News
← Back to articles

Show HN: A local MitM proxy to control TLS fingerprints

read original more articles
Why This Matters

This local MITM proxy offers security professionals a powerful tool to simulate diverse TLS and HTTP fingerprint profiles, aiding in testing and improving WAF detection systems. Its ability to control multiple fingerprint parameters from a single configuration enhances security testing precision and flexibility, which is valuable for both security researchers and developers.

Key Takeaways

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