HTTP INJECTOR BASIC GUIDE | HOW TO USE HTTP INJECTOR [Read Full Guide]

blogs How To



Before we get started, let’s understand the meaning & terms of http injector, ehi file, config file of http injector and then we will learn how to use http injector, how to create ehi file.

Glossary :

Before we get started, let’s understand the meaning
# Word Meaning
[Main] Payload HTTP header data payload that will be injected
Remote Proxy Remote HTTP proxy (ex: Squid proxy/APN proxy)
Debug Mode Show your data that you send/received in app log (Please turn off during normal usage)
Battery Saver Disable Wakelock that prevent your CPU from sleeping
Google DNS Use Google DNS to bypass blocked websites and prevent your ISP from knowing what websites you’re visiting.
Start SSH Start SSH connection upon starting injection.
[SSH/Setting] Connect Mode There’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)
SSH Secure Shell is a encrypted network protocol for initiating text-based shell sessions on remote machines in a secure way.
SSH Host SSH IP/hostname
SSH Port The port for your SSH server, normally will be port 22 (Normally public squid/http proxy will block port 22)
Username SSH username
Password SSH password
Data Compression Compress data packet using zlib.
Upstream Proxy HTTP 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.
Using the below keyword, the app will automatically replace with relevent 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]
Assume that 188.100.100.123 is your SSH Server IP and 22 is your SSH port
Keyword Auto Replaced Meaning
[host] 188.100.100.123 Destination host
[port] 22 Destination port
[host_port] 188.100.100.123:22 Destination host and port, seperated by colon :
[ssh] 188.100.100.123:22 SSH server ip and port that you set at settings
[protocol] HTTP\1.0 or HTTP\1.1 HTTP protocol version
[netData] CONNECT [host_port] [protocol] Short form of three keywords
[cr] \r Carriage Return, U+000D
[lf] \n Line Feed, U+000A
[crlf] \r\n CR (U+000D) followed by LF (U+000A)
[lfcr] \n\r LF (U+000A) followed by CR (U+000D)
[crlf][crlf] \r\n\r\n To indicate the end of HTTP header

Inject Method



Notice: In this example we are using “CONNECT” & “HEAD” request method and domain.com as the host you want to spoof, you might need to use GET/POST/DELETE/CONNECT/HEAD…
Make sure your remote HTTP proxy allow the request method else you will get 403 error.
Tips: Use “Payload Generator” inside HTTP Injector app instead of writing manually. Normally we just need to use “CONNECT” request method
Method Payload
Normal CONNECT [host_port] [protocol][crlf]Host: domain.com[crlf][crlf]
Front Inject GET http://domain.com/ HTTP/1.1[crlf]Host: domain.com[crlf][crlf]CONNECT [host_port] [protocol][crlf][crlf]
Back Inject CONNECT [host_port] HTTP/1.1[crlf][crlf]GET http://domain.com/ [protocol][crlf]Host: domain.com[crlf][crlf]
Front Query CONNECT domain.com@[host_port][crlf]GET http://domain.com/ [protocol][crlf]Host: domain.com[crlf][crlf]
Back Query CONNECT [host_port]@domain.com[crlf]GET http://domain.com/ [protocol][crlf]Host: domain.com[crlf][crlf]

Troubleshoot

  • 302 Error code – If you are getting 302 HTTP header code that means your ISP is redirecting your request to their captive portal page. Normally ISP blacklisted your remote proxy or the HTTP Payload
  • 400 Error code – This indicate that your payload is invalid and can’t be understand by remote proxy
  • Connection timeout – It could be that your network connection is slow or the remote proxy is slow




VPN

  • Psiphon – To use with psiphon (uncheck Start SSH), you can’t use [host_port] in your payload, you need to get the SSH IP of psipon and hardcode it (not tested)
  • OpenVPN – Disable “Start SSH” and use HTTP Injector with your OpenVPN if you don’t have SSH server.
    You have to add http-proxy 127.0.0.1 8989 and bypass route route replace_to_your_remote_proxy_ip 255.255.255.255 net_gateway (change “replace_to_your_remote_proxy_ip” to IP) to your VPN config.

HOW TO CREATE CONFIG FILE FOR HTTP INJECTOR [Step by Step]




Http injector is one of the popular vpn’s for android and it can not be used without a config file. Most people do not know how to create config file. They will searching for it online. I decided to share this tutorial in order to make it easy for http injector users in creating their own config file. In this tutorial,am going to use music plus as an example. Follow the steps carefully.
1. If you don’t have http injector on your phone,you can download it from play store.

2. Open your http injector and click on the the three dots at the top right corner of the application. Then scroll down and click on CLEAR SETTING /DATA

3. At the top left corner of the http injector, you will see three lines,click on the lines and also click on PAYLOAD GENERATOR

4. Put the following under PAYLOAD GENERATOR

Url/Host: musicplus.mtnonline.com(touch)
Request method: Connect
Injection method: Normal
Mark ONLINE HOST
Then click on GENERATE PAYLOAD,see the screenshot below

5. Now go back to to the hompage of the application and put your remote proxy Ip and Port as 10.199.212.2:8080
NOTE
I use the above Up and port because the config  file we are creating is for music plus. Other packages like Etisalat chat or social pack have their own Ip and Port.
After you are through with the Up and Port, Tick the START SSH box



6. The next thing is to put your SSH server login details. Click on the three lines at the top left corner of your Http Injector  and select your CONNECT MODE,SSH HOST,USER NAME AND PASSWORD.

Go back and click on Start to enjoy your personal config  file


Leave a Reply