tags: Differenza_Dominio_IP banner_grabbing reconnaissance
La risposta potrebbe essere uguale o diversa, a seconda della configurazione del server web e del virtual hosting utilizzato. Ecco cosa succede in dettaglio:
1. Caso: Indirizzo IP e dominio restituiscono la stessa risposta
Se il server web ospita un solo sito (nessun virtual hosting configurato), la risposta sarà identica. Questo avviene perché:
- Il server associa direttamente l’indirizzo IP al contenuto del sito.
- Non importa se la richiesta viene fatta usando l’IP o il dominio.
Esempio:
- Indirizzo IP:
192.168.1.10 - Dominio:
www.example.com
Richiesta HTTP:
GET / HTTP/1.1 Host: 192.168.1.10
Risposta:
HTTP/1.1 200 OK Server: nginx/1.18.0 (Ubuntu)
2. Caso: Indirizzo IP e dominio restituiscono risposte diverse
Se il server web utilizza il virtual hosting, la risposta può variare:
- Con il dominio, il server riconosce il sito richiesto leggendo l’intestazione
Hostnella richiesta HTTP. - Con l’indirizzo IP, il server potrebbe:
- Mostrare il sito predefinito.
- Restituire un errore (es.
400 Bad Requesto403 Forbidden).
Esempio di virtual hosting: Il server 192.168.1.10 ospita due siti:
www.example1.comwww.example2.com
Richiesta con dominio:
GET / HTTP/1.1 Host: www.example1.com
Risposta:
HTTP/1.1 200 OK Server: Apache/2.4.41 (Ubuntu) Content: Welcome to Example1!
Richiesta con indirizzo IP:
GET / HTTP/1.1 Host: 192.168.1.10
Risposta:
-
Sito predefinito:
HTTP/1.1 200 OK Content: Default Page -
Oppure errore:
HTTP/1.1 400 Bad Request
3. Perché il comportamento varia con l’indirizzo IP?
La variazione è legata a come funziona il protocollo HTTP:
- Header Host: L’intestazione
Hostè obbligatoria nelle richieste HTTP/1.1. Indica al server quale sito servire quando più domini sono ospitati sullo stesso IP. - Virtual Hosting: Consente a un server con un unico IP di ospitare più siti. Senza un valore
Host, il server non sa quale sito servire.
4. Come verificare la differenza?
Puoi simulare richieste con IP e dominio per vedere se il comportamento cambia.
Con Curl:
-
Usando l’IP:
curl -I http://192.168.1.10 -
Usando il dominio:
curl -I http://www.example1.com
Con Netcat:
Puoi specificare manualmente l’intestazione Host:
-
Usando l’IP:
nc 192.168.1.10 80 GET / HTTP/1.1 Host: 192.168.1.10 -
Usando il dominio:
nc 192.168.1.10 80 GET / HTTP/1.1 Host: www.example1.com
5. Conclusione
- Stessa risposta: Se il server non utilizza virtual hosting o il sito è unico.
- Risposta diversa: Se il server utilizza virtual hosting o richiede un valore specifico nell’intestazione
Host.