HTTP Injector

Mobile proxy server with the ability to modify requests and access blocked websites behind firewall, etc.

Glossary

Before we get started, let's understand the meaning
#WordMeaning
[Main]PayloadHTTP header data payload that will be injected
Remote ProxyRemote HTTP proxy (ex: Squid proxy/APN proxy)
Debug ModeShow your data that you send/received in app log (Please turn off during normal usage)
Battery SaverDisable Wakelock that prevent your CPU from sleeping
Google DNSUse Google DNS to bypass blocked websites and prevent your ISP from knowing what websites you're visiting.
Start SSHStart SSH connection upon starting injection.
[SSH/Setting]Connect ModeThere's two modes, iptables (root) which will require root and it only tunnel port 80 and 443 traffic.
VPN Service mode is for Android 4.0+ and will tunnel all traffic to your server. (Please use root mode, if you are having issue with VPN Service mode)
SSHSecure Shell is a encrypted network protocol for initiating text-based shell sessions on remote machines in a secure way.
SSH HostSSH IP/hostname
SSH PortThe port for your SSH server, normally will be port 22 (Normally public squid/http proxy will block port 22)
UsernameSSH username
PasswordSSH password
Data CompressionCompress data packet using zlib.
Upstream ProxyHTTP Injector currently is using port 8989 (fixed), you have to enable and set 127.0.0.1:8989 for the SSH to connect to HTTP Injector local proxy server.

Payload Keyword

Using the below keyword, the app will automatically replace with relavent data upon injection, you don't need to replace the word inside the square bracket unless you know what you are doing.
Supported keyword: [host] [port] [host_port] [protocol] [netData] [cr] [lf] [crlf] [lfcr]
KeywordAuto ReplacedMeaning
[host]188.100.100.123Destination host
[port]22Destination port
[host_port]188.100.100.123:22Destination host and port, seperated by colon :
[ssh]188.100.100.123:22SSH server ip and port that you set at settings
[protocol]HTTP\1.0 or HTTP\1.1HTTP protocol version
[netData]CONNECT [host_port] [protocol]Short form of three keywords
[cr]\rCarriage Return, U+000D
[lf]\nLine Feed, U+000A
[crlf]\r\nCR (U+000D) followed by LF (U+000A)
[lfcr]\n\rLF (U+000A) followed by CR (U+000D)
[crlf][crlf]\r\n\r\nTo indicate the end of HTTP header

Inject Method

MethodPayload
NormalCONNECT [host_port] [protocol][crlf]Host: domain.com[crlf][crlf]
Front InjectGET http://domain.com/ HTTP/1.1[crlf]Host: domain.com[crlf][crlf]CONNECT [host_port] [protocol][crlf][crlf]
Back InjectCONNECT [host_port] HTTP/1.1[crlf][crlf]GET http://domain.com/ [protocol][crlf]Host: domain.com[crlf][crlf]
Front QueryCONNECT domain.com@[host_port][crlf]GET http://domain.com/ [protocol][crlf]Host: domain.com[crlf][crlf]
Back QueryCONNECT [host_port]@domain.com[crlf]GET http://domain.com/ [protocol][crlf]Host: domain.com[crlf][crlf]

Troubleshoot

VPN