| Artículos | 01 JUL 2004

HTTP a fondo

Tags: Histórico
Gonzalo Alvarez.
La Web puede parecer extraordinariamente compleja y de gran riqueza. A pesar de ello, se apoya sobre un protocolo extremadamente sencillo: HTTP. Este mes OFRECEMOS algunos trucos para comprender a fondo su funcionamiento y para utilizarlo para algo más que para navegar por Internet.

Cómo congelar el tráfico HTTP
Cuando se está navegando por Internet, el navegador envía al servidor web peticiones HTTP. Éste las procesa y envía la respuesta al navegador. Hay ocasiones en las que puede resultar de gran utilidad poder interceptar estas peticiones y respuestas con el fin de examinarlas, modificarlas, registrarlas o lo que sea. Existen programas llamados proxies que permiten realizar precisamente esta función. Un proxy de estas características se instala en el ordenador y se deja escuchando en un puerto arbitrario elegido por el usuario, por ejemplo, el 10101. A continuación, se configura el navegador para que utilice como proxy este programa: se configura como dirección del proxy la de la propia máquina, esto es, localhost (127.0.0.1) y como puerto del proxy, el que se haya configurado al arrancar el programa de proxy, siguiendo con el ejemplo, el puerto 10101. Para ello, seleccione Herramientas » Opciones de Internet » Conexiones. Pulse el botón Configuración de LAN y verifique la casilla Utilizar un servidor proxy para su LAN. En el campo Dirección escriba localhost y en el campo Puerto, escriba 10101 (o cualquier otro número de puerto que haya configurado en el proxy).
A partir de este momento, todas las peticiones realizadas por el navegador pasarán previamente por el proxy, que actúa a modo de “hombre en el medio”. El proxy puede detener las peticiones que envía el navegador al servidor, o las respuestas del servidor que recibe el navegador, o ambas. En el momento en que el proxy intercepta una petición, el contenido de ésta aparece en pantalla para que pueda ser modificada a voluntad por el usuario. Una vez alterada de la manera deseada, se envía para que llegue a su destino.
Estas herramientas resultan extremadamente útiles para estudiar el funcionamiento del protocolo HTTP, localizar errores en aplicaciones web y realizar auditorías de seguridad. Entre las más populares se encuentran Achilles (www.mavensecurity.com/achilles), BurpProxy (portswigger.net/proxy), Odysseus (www.wastelands.gen.nz/odysseus) y Spike Proxy (www.immunitysec.com/downloads/SP148.zip). Todas ellas son gratuitas y su manejo resulta muy sencillo.

Navegación al desnudo
Si desea comprender a fondo el funcionamiento del protocolo HTTP, existe una herramienta cuyo uso resulta aún más esclarecedor. Se trata de Wfetch, que se distribuye gratuitamente formando parte del kit de recursos de IIS 6.0 (www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&DisplayLang=en), aunque también es posible encontrarla de forma independiente (download.microsoft.com/download/d/e/5/de5351d6-4463-4cc3-a27c-3e2274263c43/wfetch.exe). Esta herramienta resulta ideal para estudiar todos los pasos del protocolo HTTP, especialmente cuando se está utilizando algún tipo de autenticación diferente de la anónima. En concreto Wfetch soporta las formas de autenticación básica, NTLM, Kerberos, Digest, Negotiate. También soporta la autenticación con certificados de cliente y las conexiones a través de proxy.

Disfrazando el servidor web
Si ha utilizado cualquiera de las herramientas mencionadas en los trucos anteriores, seguramente ya habrá observado que todos los servidores web utilizan una cabecera HTTP llamada Server para identificarse. Cadenas típicas de identificación de diferentes servidores son: Microsoft-IIS/5.0, Apache/2.0.40 (Red Hat Linux), AOLserver/3.5.5, SunONE WebServer 6.0, WebLogic WebLogic Temporary Patch for CR092501 12/09/2002 11:16:22, Oracle9iAS/9.0.4 Oracle HTTP Server OracleAS-Web-Cache-10g/9.0.4.0.0 (N), etc.
Habrá circunstancias en las que pueda resultar de interés eliminar esta cabecera o modificarla: por ejemplo, evitar algunos ataques dirigidos específicamente contra el tipo de servidor que se anuncia en dicha cabecera. En servidores IIS la cabecera Server se puede eliminar o modificar utilizando el filtro ISAPI conocido como URLScan (www.microsoft.com/downloads/details.aspx?FamilyID=12244f33-a5da-4203-a3a8-83f4388bb71f&DisplayLang=en). Este filtro no sólo permite cambiar la cabecera Server, sino que realiza otras muchas funciones de tipo cortafuegos de nivel de aplicación, como bloquear peticiones sospechosas o decididamente maliciosas.
Otra herramienta que puede utilizarse para disfrazar no sólo la cabecera Server de IIS, sino eliminar otras cabeceras que lo delatan claramente, es ServerMask. Se trata de una herramienta de pago, aunque puede descargarse una versión de evaluación desde www.port80software.com/products/servermask.

¿Qué tipo de servidor web será?
Tal y como se ha visto en el truco anterior, algunos servidores eliminan por completo la cabecera Server o la disfrazan utilizando un valor diferente al predeterminado. ¿Cómo se puede identificar un servidor así disfrazado? Se pueden utilizar herramientas especializadas en la detección del tipo de servidores web y del sistema operativo de la máquina que lo aloja. Una de las más exactas es HTTPrint (net-square.com/httprint). Esta herramienta se basa en el conocimiento del orden en que aparecen las distintas cabeceras que conforman la respuesta del servidor ante diferentes peticiones. Dado que cada servidor ordena estas cabeceras de una forma característica, distinta de la de los otros servidores, resulta factible compilar una lista con todos los ordenamientos posibles. Para averiguar el tipo de servidor real, HTTPrint le envía al servidor varias peticiones y atendiendo al orden de las cabeceras de las distintas respuestas deduce con un porcentaje de error muy pequeño cuál es el tipo y versión del servidor web real con el que se está comunicando. Otra herramienta similar y también gratuita es HMAP (ujeni.murkyroc.com/hmap).

Mi cortafuegos no me deja
¿Cuántas veces se ha encontrado con el siguiente problema? Intenta conectarse a un sitio web o instala algún programa para descargar música, o para compartir archivos, o para chatear, o para enviarse mensajes instantáneos con sus amigos, pero no funciona porque hay un proxy o un cortafuegos que filtran esa página o el tráfico generado por ese programa. Nada más fácil de evitar: utilice un túnel HTTP. Lo más seguro es que su cortafuegos permita el acceso a páginas web, es decir, que el puerto 80 no esté bloqueado a la salida. También puede ocurrir que algunas páginas estén bloqueadas porque exista un filtro de contenidos. Pues bien, con el túnel HTTP podrá saltarse tanto las restricciones de contenidos de páginas web como la restricción de uso de programas de Internet que no utilicen el puerto TCP 80.
Estos túneles funcionan de la siguiente manera. En la máquina del usuario se instala el cliente de la aplicación de túnel. Este cliente actúa como un servidor local que permanece a la escucha en los puertos de aquellos protocolos que se desee tunelizar. Por ejemplo, suponga que se quiere conectar a una cuenta de correo POP3 en pop.correo.yahoo.es. Este servicio se presta en el número de puerto 110, pero el cortafuegos está bloqueando el acceso a dicho puerto. Si configura su cliente de correo, por ejemplo Outlook Express, para crear una c

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información