Hack x Crack - Comunidad de Seguridad informática

Hack x Crack => Dudas Generales => Mensaje iniciado por: regalosorpresa en Marzo 14, 2019, 10:19:49 am

Título: acceder a pagina por su ip
Publicado por: regalosorpresa en Marzo 14, 2019, 10:19:49 am
hola a todos me he dado cuenta que antiguamente yo hacia ping a una pagina web y podia entrar poniendo la ip en el navegador y me llevaba a la web en cuestion y ahora la mayoria de paginas pongo la ip que me dan los whois o el ping a la web y no me lleva me da un error

Error 1003 Ray ID: 4b751d7189aa54aa • 2019-03-14 09:10:31 UTC
Direct IP access not allow

alguien sabe porque me pasa esto con tantas paginas y como poder acceder a ellas por su ip y no por el nombre de resolucion dns, gracias.
Título: Re:acceder a pagina por su ip
Publicado por: animanegra en Marzo 14, 2019, 12:37:59 pm
Porque se usan virtual hosts, como los de apache:

Código: [Seleccionar]

Listen 80
<VirtualHost 172.20.30.40>
    DocumentRoot "/www/example1"
    ServerName www.example.com
</VirtualHost>

<VirtualHost 172.20.30.40>
    DocumentRoot "/www/example2"
    ServerName www.example.org
</VirtualHost>

<VirtualHost 172.20.30.40>
    DocumentRoot "/www/example3"
    ServerName www.example.net
</VirtualHost>

Que asignan a cada nombre diferente un recurso diferente que puede estar en la misma máquina. Si no pones el nombre que en realidad va en la peticion http, en la cabecera de host, el servidor web no sabe a que recurso dirigirte.
Título: Re:acceder a pagina por su ip
Publicado por: regalosorpresa en Marzo 14, 2019, 01:57:12 pm
entonces como puedo llegar a saber su ip?
Título: Re:acceder a pagina por su ip
Publicado por: animanegra en Marzo 14, 2019, 04:32:37 pm
Su IP ya la sabes. Es la que resuelve el nombre de dominio. Me temo que en algo me he explicado mal pero no llego a ver en que.

Tu cuando accedes a cualquier página no accedes usando el nombre nunca, solo la IP. De hecho el navegador internamente esta enviando una peticion a la IP y no al nombre de dominio. Bueno en realidad primero resuelve la IP en el servidor DNS y despues contacta con la IP.

El problema reside en que el navegador va a poner como Host (cabecera http no confundir con cabecera IP) el servidor al que estamos intentando contactar. Esto es fácilmente emulable con nc (creo que se verá mejor ya que ahi hay que meter toda la cabecera a mano). Si por ejemplo usamos nc para contactar de esta forma (tenemos que escribir en consola lo que se ve aquí):

Código: [Seleccionar]
[email protected]:~/nc 31.220.2.74 80
GET /Paginas/VariationRoot.aspx HTTP/1.0
Host: 31.220.2.74


El servidor devuelve una página de error (tiene virtual hosts y ese nombre de host no lo tiene relacionado con ningun recurso a mostrar):

Código: [Seleccionar]
HTTP/1.1 500 Internal Server Error
Server: nginx
Date: Thu, 14 Mar 2019 15:24:13 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 8554
Connection: close
Cache-Control: private
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 14.0.0.7015
X-MS-InvokeApp: 1; RequireReadOnly

<html>
    <head>
        <title>No se encontró la aplicación web en http://31.220.2.74. Compruebe que escribió la dirección URL correctamente. Si la dirección URL da servicio al contenido existente, puede que el administrador del sistema necesite agregar una nueva asignación de solicitud de dirección URL a la aplicación deseada.</title>
        <style>
....

En cambio si hacemos lo mismo especificando el Host en la cabecera (fijate que es la misma IP y mismo puerto, estamos cambiando lo que enviamos en la cabecera http, en concreto la variable Host):

Código: [Seleccionar]
[email protected]:~/nc 31.220.2.74 80
GET /Paginas/VariationRoot.aspx HTTP/1.0
Host: www.sgae.es


Lo que nos devuelve es una contestacion http válida:

Código: [Seleccionar]
HTTP/1.1 302 Found
Server: nginx
Date: Thu, 14 Mar 2019 15:29:00 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 141
Connection: close
Cache-Control: private
Location: http://www.sgae.es/es-ES
SPRequestGuid: 4ed91092-3f73-47d6-8197-fac78b475c17
X-SharePointHealthScore: 0
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 14.0.0.7015
X-MS-InvokeApp: 1; RequireReadOnly

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.sgae.es/es-ES">here</a>.</h2>
</body></html>

Podriamos tener muchos nombres de domino vinculados a nuestra IP (de hecho sería irrelevante tener o no el nombre de dominio si la peticion web se construye de forma correcta), la misma IP en todos los dominios. Pero damos un recurso u otro (osea una pagina web u otra) dependiendo el nombre que nos pongan a nivel de aplicacion, a nivel http. Osea el valor que tiene la variable Host que esta en nivel de aplicacion, osea encima del nivel de transporte (TCP) y encima del nivel de red (IP).

¿Se entiende ahora?