http3 WebProxy
Go to file
2025-04-26 15:09:21 -04:00
scripts updates 2025-04-26 15:09:21 -04:00
templates updates 2025-04-26 15:09:21 -04:00
.gitignore updates 2025-04-26 15:09:21 -04:00
docker-compose.yml updates 2025-04-26 15:09:21 -04:00
Dockerfile updates 2025-04-26 15:09:21 -04:00
generate-certs.sh init commit 2025-04-26 14:24:23 -04:00
go.mod init commit 2025-04-26 14:24:23 -04:00
go.sum init commit 2025-04-26 14:24:23 -04:00
main.go updates 2025-04-26 15:09:21 -04:00
README.md updates 2025-04-26 15:09:21 -04:00
setup-templates.sh updates 2025-04-26 15:09:21 -04:00

🚀 FuckHTTP3 Proxy

A powerful HTTP/3 intercepting proxy with JavaScript injection capabilities. Browse websites through HTTP/3 (QUIC) while injecting custom JavaScript into every page.

Intercept. Inject. Control.

🔍 Overview

FuckHTTP3 is a sophisticated proxy tool that:

  • Acts as a forward proxy for HTTP/3 traffic
  • Provides a user-friendly web UI for browsing
  • Allows custom JavaScript injection into any proxied website
  • Supports both direct browser configuration and web UI-based browsing
  • Helps with debugging and manipulating HTTP/3 traffic

📦 Installation

Prerequisites

  • Go 1.16 or higher
  • TLS certificates (for HTTPS and HTTP/3)

Building from source

# Clone the repository
git clone https://github.com/yourusername/fuckhttp3.git

# Navigate to the project directory
cd fuckhttp3

# Build the binary
go build -o fuckhttp3 .

🎮 Usage

Generating certificates

For local development, generate self-signed certificates:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

Running the proxy

Basic usage:

./fuckhttp3 --addr=localhost:8443 --cert=cert.pem --key=key.pem --webui --verbose

Command-line options

Option Description Default
--addr Address to listen on localhost:8443
--cert Certificate file path cert.pem
--key Private key file path key.pem
--target Target address to proxy to (empty = forward proxy)
--webui Enable web UI for user-specified proxy targets false
--verbose Enable verbose logging false

Features

🌐 Web UI

When running with the --webui flag, access the web interface by navigating to the proxy address:

https://localhost:8443/

The web UI provides:

  • A URL input field for browsing through the proxy
  • JavaScript injection capability
  • Example scripts for common tasks

💉 JavaScript Injection

The proxy can inject custom JavaScript into every web page it processes:

  1. Write or paste your JavaScript code in the web UI
  2. Save the script and enable injection
  3. Browse websites with your script automatically injected

Example Scripts

The UI includes example scripts for:

Script Purpose
Dark Mode Apply dark theme to any website
Ad Blocker Hide common ad elements
Image Highlighter Add borders to all images

🔄 Proxy Modes

FuckHTTP3 operates in two modes:

Mode Description
Forward Proxy Standard proxy that browsers can use directly
Web UI Mode Web interface for browsing through the proxy

🔧 Browser Configuration

To use FuckHTTP3 as a system-wide proxy:

Firefox

  1. Open Settings
  2. Search for "proxy"
  3. Click "Settings" in the Connection Settings section
  4. Select "Manual proxy configuration"
  5. Enter your proxy address and port
  6. Check "Also use this proxy for HTTPS"

Chrome/Chromium

⚠️ Chrome doesn't natively support HTTP/3 proxies. Use the web UI mode instead.

🔍 Troubleshooting

Script Injection Issues

Problem Solution
Scripts not running Ensure "Enable script injection" is checked
No confirmation Verify script was saved successfully
Script blocked Some sites use CSP which may block injected scripts
Testing Try a simpler website like example.com first
Errors Check browser console for any error messages

Certificate Warnings

Environment Solution
Development Add self-signed certificate to browser's trust store
Production Use a properly signed certificate from a trusted CA

⚠️ Limitations

  • Some websites may block proxy connections
  • Content Security Policy might prevent script injection
  • Complex single-page applications may require more advanced injection techniques

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.


Note: Use responsibly and respect website terms of service when injecting scripts.