scripts | ||
templates | ||
.gitignore | ||
docker-compose.yml | ||
Dockerfile | ||
generate-certs.sh | ||
go.mod | ||
go.sum | ||
main.go | ||
README.md | ||
setup-templates.sh |
🚀 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:
- Write or paste your JavaScript code in the web UI
- Save the script and enable injection
- 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
- Open Settings
- Search for "proxy"
- Click "Settings" in the Connection Settings section
- Select "Manual proxy configuration"
- Enter your proxy address and port
- 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.