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 Host nella richiesta HTTP.
  • Con l’indirizzo IP, il server potrebbe:
    • Mostrare il sito predefinito.
    • Restituire un errore (es. 400 Bad Request o 403 Forbidden).

Esempio di virtual hosting: Il server 192.168.1.10 ospita due siti:

  • www.example1.com
  • www.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.