Tecniques

Antes no existían estas vulnerabilidades, porque cada Host apuntaba solo a una IP.
Ahora con el virtual hosting es normal que haya varios host accesibles desde la misma IP.
Tambien puede ser que haya un load balancer o un proxy intermedio actuando, la ip a la que se apunta es la del intermediario.

Si tira 200 podemos inyectar cosas en la cabecera Host, ya que lo está ignorando al tratarse de un puerto

GET /example HTTP/1.1 
Host: vulnerable-website.com:bad-stuff-here

Igual solo miran vulnerable-website.com y tu tienes control sobre hacked-subdomain

GET /example HTTP/1.1 
Host: hacked-subdomain.vulnerable-website.com

Igual el backend prefiere la segunda cabecera, discrepancias entre frontend y backend

GET /example HTTP/1.1
Host: vulnerable-website.com
Host: bad-stuff-here
GET /example HTTP/1.1
    Host: bad-stuff-here
Host: vulnerable-website.com

Nos puede servir para inyectar Host maliciosos

GET https://vulnerable-website.com/ HTTP/1.1
Host: bad-stuff-here

Spoofear el Host mediante ciertas cabeceras :

GET /example HTTP/1.1
Host: vulnerable-website.com
X-Forwarded-Host: bad-stuff-here


Although X-Forwarded-Host is the de facto standard for this behavior, you may come across other headers that serve a similar purpose, including:

X-Forwarded-Server
X-HTTP-Host-Override
Forwarded
X-Forwarded-Host
X-Original-Host
X-Host
X-Referred-Host

Webs privadas y

www.example.com: 12.34.56.78
intranet.example.com: 10.0.0.132