On peut tenter avec n'importe quel serveur, mais ils ne semblent rien envoyer dans les headers par défaut, c'est peut-être limité à une liste.
En utilisant 62.34.202.116, le serveur est contacté par 62.34.202.104, ou 2001:860:de00:3000::86 (IPv6 par défaut, obtenue en testant avec ip.lafibre.info).
$ curl -vvv --resolve httpbin.org:80:62.34.202.116 httpbin.org/get
* Added httpbin.org:80:62.34.202.116 to DNS cache
* Hostname httpbin.org was found in DNS cache
* Trying 62.34.202.116...
* TCP_NODELAY set
* Connected to httpbin.org (62.34.202.116) port 80 (#0)
> GET /get HTTP/1.1
> Host: httpbin.org
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Connection: keep-alive
< Server: gunicorn/19.9.0
< Date: Tue, 16 Oct 2018 23:11:26 GMT
< Content-Type: application/json
< Content-Length: 133
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
< Via: 1.1 vegur
<
{
"args": {},
"headers": {
"Accept": "*/*",
"Connection": "close",
"Host": "httpbin.org",
"User-Agent": "curl/7.58.0"
},
"origin": "62.34.202.104",
"url": "http://httpbin.org/get"
}
Le serveur semble aussi pouvoir fonctionner comme proxy HTTP.
C'est presque la même chose qu'avec le DNS menteur : seule la ligne "GET / HTTP/1.1" est remplacée par "GET
http://hostname/ HTTP/1.1", mais il suit toujours le header "Host: xxxx" pour savoir à quel serveur il doit faire suivre.
En mode proxy, la méthode CONNECT fonctionne pour le HTTPS (mais dans ce cas bien sûr il ne peut pas y avoir interception).
"curl --proxy 62.34.202.116:80
https://www.youscribe.com" fonctionne par exemple.
Dans ce cas, il utilise bien le serveur donné par "CONNECT
www.youscribe.com:443 HTTP/1.1", même si on force "Host: lafibre.info" par exemple.
Pour les noms de domaine qu'il n'arrive pas à résoudre, il retourne une erreur 404 en http, et une redirection en https.
curl -vvv --proxy 62.34.202.116:80 https://nonexistent.domain
* Rebuilt URL to: https://nonexistent.domain/
* Trying 62.34.202.116...
* TCP_NODELAY set
* Connected to 62.34.202.116 (62.34.202.116) port 80 (#0)
* allocate connect buffer!
* Establish HTTP proxy tunnel to nonexistent.domain:443
> CONNECT nonexistent.domain:443 HTTP/1.1
> Host: nonexistent.domain:443
> User-Agent: curl/7.58.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 302 Moved Temporarily
< Location: http://wap.bouygtel.fr/?URL_Origin=nonexistent.domain%2F
< Content-Length: 0
<
* Received HTTP code 302 from proxy after CONNECT
* CONNECT phase completed!
* Closing connection 0
curl: (56) Received HTTP code 302 from proxy after CONNECT