Está en la página 1de 8

Objetivo: Familiarizarse con las caractersticas de algunos de los servicios de comunicacin bsicos (

HTTP, Telnet, SSH, SCP, FTP, TFTP) que se utilizan en Internet y en redes privadas basadas en TCP/IP.

Requisitos: Disponer de una computadora de buenas prestaciones que est conectada a Internet. Se
recomienda realizar previamente la prctica Captura y anlisis de trfico.

Plataforma: Windows.

Prctica: Navegacin en el Web mediante HTTP

Hoy da, no quedan dudas respecto de que Internet ha significado un cambio rotundo en cuanto al modo en qu millones de personas alrededor del mundo se comunican. En tal sentido, esta bien llamada revolucin se debe en gran parte al crecimiento de uno de sus servicios ms vistosos: el Web o ms precisamente el WWW (World Wide Web). Sin ser injustos por ejemplo, con servicios como el correo electrnico y la mensajera instantnea, que junto a los servicios Web, han sido responsables de la velocidad con que esta revolucin se ha llevado a cabo, se puede afirmar que el fenmeno del WWW ha contribuido enormemente a llevar Internet a las masas. Si bien es cierto que en un principio, lo que hoy se conocemos como el Web no era ms que un conjunto de sitios sirviendo pginas estticas, poco a poco este concepto ha ido evolucionando hasta convertir dicho contenido esttico, en contenido dinmico capaz de ofrecer altos niveles de interactividad.Pero nada ocurre por casualidad, y aspectos tales como dinamismo e interactividad, y nuevas funcionalidades, requieren del desarrollo de aplicaciones capaces de cumplir con nuestras cada vez ms exigentes expectativas. Hoy da existen millones de sitios Web, muchos de los cuales probablemente se encuentren corriendo algn tipo de aplicacin, y a esto agregamos el creciente desarrollo de aplicaciones de negocios, que bajo el slogan Web Enabled, se ejecutan internamente en millones de empresas como un componente fundamental de negocio, en sus Intranets corporativas. La informacin en el Web consiste de documentos que pueden ser de tipo texto, grficos y otros medios, los cuales estn interconectados mediante enlaces ( links) incrustados en los propios documentos. A esa informacin se tiene acceso mediante un programa visualizador ( browser) tambin denominado navegador, qu adems permite saltar a otros documentos, simplemente haciendo clic en uno de los enlaces. Cada enlace proporciona al visualizador un URL (Uniform Resource Locator), que especifica el sitio donde reside el documento. Un ejemplo de URL es: http://vmendillo.blogspot.com/index.html, donde http especifica el protocolo a utilizar en la transferencia; en este ejemplo corresponde al popular HTTP (HyperText Transfer Protocol). A continuacin de http, el URL especifica el servidor Web donde reside

el documento deseado; en el ejemplo, vmendillo.blogspot.com. El resto de la cadena proporciona el identificador del archivo dentro del servidor (index.html). Al hacer clic sobre el link, se activa un mecanismo de interaccin que concluye con la descarga y la visualizacin de la informacin almacenada en el servidor. HTTP especifica las reglas utilizadas por ambos extremos para interactuar de manera que se visualice la informacin. Desde el punto de vista de las comunicaciones, HTTP est basado en TCP/IP y opera bajo el modelo cliente-servidor: un proceso servidor escucha en un puerto de comunicaciones TCP (por defecto, el 80), y espera las solicitudes de conexin de los clientes Web. Una vez que se establece la conexin, el protocolo TCP se encarga de mantener la comunicacin y garantizar un intercambio de datos libre de errores. La conversacin entre el cliente y el servidor se lleva a cabo utilizando un set de instrucciones conocidos como mtodos (GET, HEAD, POST, etc.), a partir de los cuales es posible establecer diferentes tipos de requerimientos, los cuales a su vez son respondidos con mensajes. La especificacin del HTTP es extremadamente larga e implica una gran cantidad de condiciones que pueden existir entre el servidor y el cliente. Para saber ms sobre HTTP y el formato de los archivos HTML, consulte algunos de los numerosos tutoriales que se consiguen en Internet. Para conocer los detalles de los protocolos, consulte por ejemplo RFC 1945, RFC 2616, y visite http://www.w3.org/Protocols. Para analizar HTTP se podra capturar el trfico con un sniffer como Wireshark y luego estudiarlo con detenimiento. Existen herramientas como HTTP Analyzer, Paros, Burp, WebScarab, que actan como un proxy interno, interceptando en tiempo real el trfico HTTP generado por el browser y desglosando su estructura, incluyendo cabecera, contenido, cookies, peticin y respuesta, URLs de redireccin y mucho ms. El browser Firefox dispone de extensiones o complementos como LiveHttpHeaders que permiten hacer eso mismo.

1. Pero para analizar HTTP sin instalar nada, navegue a http://web-sniffer.net, un proxy remoto que permite visualizar en vivo los encabezados de las peticiones y respuestas HTTP. En la casilla introduzca la URL de un sitio Web (por ejemplo http://vmendillo.blogspot.com/index.html).

2. Seleccione HTTP/1.1. Durante varios aos HTTP 1.0 se mantuvo como el protocolo principal usado entre los servidores Web y sus clientes, pero tiene varios inconvenientes. Una de las mayores diferencias entre la versin 1.0 y 1.1 del protocolo HTTP es el uso de las conexiones persistentes (keep alive). En la versin 1.0, un cliente deba enviar una solicitud por cada conexin. Cada solicitud que se haca requera que el usuario se conectara de nuevo al servidor. Cada conexin hace que se consuman recursos en el cliente y en el servidor para realizar la configuracin y la conexin. Esta redundancia puede llevar a tener que realizar muchas conexiones para descargar una pgina Web con texto e imgenes. Cada una de las imgenes requerira realizar una conexin distinta al servidor. Teniendo en cuenta la capacidad actual de incrustar sonidos, pelculas, tipos de letra, aplicaciones de Java, etc. en las pginas, es bastante obvio que

un sistema de transacciones basado en una nica conexin puede no ser la forma ideal de establecer comunicaciones en el Web. Obviamente, es necesario un mtodo para comunicarse con un servidor Web sin tener que conectarse muchas veces por pgina. El protocolo HTTP 1.1 soluciona esto, permitiendo al cliente especificar mltiples solicitudes dentro de una nica conexin. Esta capacidad ahorra tiempo de procesador del servidor y del cliente, y tambin ancho de banda de la red. Tambin es til para futuras expansiones del protocolo HTTP, ya que podra permitir negociaciones entre el cliente y el servidor, con el fin de identificar los conjuntos de funciones que cada uno admite. Las conexiones persistentes son el tipo predeterminado de conexin en la versin 1.1. El servidor supondr que debe mantener abierta la conexin, a menos que el cliente le indique lo contrario (normalmente, no enviando una solicitud HTTP 1.1, como vimos en el ejemplo anteriormente) .

3. Pulse el botn Submit y analice el HTTP Request Header. El mensaje de peticin especifica el mtodo u orden (GET), el documento (/index.html) y la versin del protocolo que est utilizando el navegador (HTTP/1.1).

4. Luego analice el HTTP Response Header, que es ms complicado. El servidor enva informacin de estado y una descripcin de la informacin que va a transferir. El cdigo de resultado 200 OK indica que la peticin del cliente fue exitosa y que el documento requerido se enva a continuacin. El mensaje tambin contiene informacin sobre el Server y el tipo de contenido del mismo (text/html). Si la peticin corresponda a una imagen, el tipo podra ser image/gif. Si la peticin es fallida, el servidor enva un cdigo de resultado diferente, que, normalmente, indica el tipo de error; por ejemplo, 404 cuando no se encuentra el documento.

5. La cabecera tambin contiene la ltima modificacin realizada. Si, al volver a una pgina Web, dicha fecha no ha cambiado, el explorador puede usar la copia de la informacin almacenada en la cach, en lugar de descargarla de nuevo de la red. El campo Content-type especifica lo que se denomina un tipo

MIME (Multipurpose Internet Mail Extensions) para los datos que el cliente puede visualizar o procesar. Normalmente, estas extensiones se usan en programas de correo electrnico para permitir la identificacin y procesamiento de los adjuntos al correo electrnico estndar. El protocolo HTTP utiliza tipos de contenido similares a MIME, que no siguen por completo el estndar MIME pero que, generalmente, son muy parecidos. Algunos de los tipos ms comunes devueltos por los servidores Web son: text/html Un documento HTML text/plain Un archivo de texto legible image/jpeg Un archivo grfico jpeg image/GIF Un archivo grfico gif image/TIFF Un archivo grfico en formato TIFF application/rtf Un documento RTF (Rich Text Format) application/zip Un archivo comprimido PKZIP o WinZIP video/mpeg Una secuencia de video mpeg video/quicktime Un archivo de video QuickTime Una lista bastante completa de los campos de la cabecera HTTP se encuentra aqu. 6. El contenido del mensaje que devuelve el servidor es en HTML y se requiere conocer este lenguaje para entenderlo.

7. Otra forma de ver el contenido es usando directamente el browser. Por ejemplo, en Internet Explorer navegue a http://vmendillo.blogspot.com/index.html. Luego vaya a Pgina | Ver cdigo fuente. 8. Debido a la gran cantidad de documentos que HTTP puede manejar y a la naturaleza robusta de las interconexiones que ofrece con otros servidores, es lgico que el servidor contenga una cantidad extremadamente grande de informacin de estado que puede comunicar al cliente. Indudablemente, Ud. habr visto ya algunos de estos mensajes de estado al navegar por la Web e incluso quizs haya maldecido en voz alta cuando haya aparecido el mensaje de error 404, File not Found. En la casilla de http://websniffer.net introduzca la URL equivocada de un sitio Web (por ejemplo http://vmendillo.blogspot.com/index.htm en vez de http://vmendillo.blogspot.com/index.html).

9. Adems de transferir datos desde el servidor al cliente, HTTP tambin tiene la capacidad de enviar datos desde el cliente al servidor. Existen dos mtodos comunes para transferir informacin al servidor: POST y GET. El nombre GET parece sugerir que se debera emplear para solicitar datos desde el servidor, no para enviarle informacin. As es, pero aunque puede parecer algo confuso que GET pueda utilizarse para enviar datos al servidor, la manera en que lo hace es extremadamente sencilla. Es posible que haya visto en su explorador Web direcciones URL con el aspecto siguiente: http://www.irongeek.com/i.php?page=videos/webgoat-sql-injection http://www.abc.com/proc.cgi?name=vmendillo Quiz haya visto una de estas direcciones despus de haber completado un formulario o una solicitud de bsqueda en un sitio Web y haberla enviado. Por ejemplo, el segundo URL enva datos a un programa llamado proc.cgi, que se encuentra en el servidor Web. Tambin se enva la informacin name=vmendillo al programa proc.cgi; dicha informacin es un dato que la pgina Web quiere enviar al servidor. La variable name toma el valor vmendillo. 10. Uno de los problemas del uso de la orden GET como mtodo para transferir informacin al servidor es que dicha informacin se pasa en forma legible en la lnea URL/Direccin del explorador, una vez que se enva un formulario. Tambin es muy probable que se almacene en un archivo histrico visualizable del explorador, que almacene las visitas realizadas. Si se enva informacin confidencial, puede que desee que sta no sea fcilmente accesible. Otro problema con GET es que el URL resultante, despus de haber enviado un formulario, es a menudo extremadamente grande. Si especifica alguna informacin bsica sobre s mismo en un formulario interactivo (usando GET) para unirse a un sitio Web y luego lo enva para acceder a dicho sitio, el URL resultante probablemente sea bastante grande. Tambin puede que no se desee proporcionar el URL a cualquiera, debido a que contiene informacin personal. Incluso aunque no le importe hacerlo, Ud. puede no desear perder el tiempo escribiendo los 200 caracteres del URL, slo para ver la ltima noticia u otro tema de moda en la Web. Estos problemas se superan utilizando la orden POST, en lugar de GET, para el envo de los datos. POST es una orden que se enva a un servidor independientemente de la orden GET. Simplemente es una lista de variables y sus valores, que luego el servidor pasar al programa que los necesite. Esta orden constituye un mtodo mucho ms limpio y amigable de enviar informacin a un servidor. El cliente no es consciente del mecanismo de transferencia de datos, a diferencia de cuando se usa GET, lo que, probablemente, es lo mejor. Es difcil mostrar aqu un ejemplo de una orden POST, por lo que se le recomienda que, en el futuro, analice lo que ocurre cuando enve datos a travs de la Web. Si ve algunos URL llenos de smbolos como ? & entonces es que est tratando con una pgina Web que usa la orden GET. Si enva un formulario y ve un un URL claro y limpio, es que se usa una orden POST. 11. Algunos sitios Web almacenan en el disco duro del usuario informacin en un pequeo archivo de texto, llamado cookie (galleta). Las cookies en su PC contienen informacin acerca de usted y sus preferencias. Por ejemplo, si pregunta por el horario de vuelos en el sitio Web de una compaa area, el sitio puede crear una cookie que contenga su itinerario. Tambin puede contener un registro de las pginas visitadas en un sitio, que el sitio utilizar para personalizar su exploracin la prxima vez que lo visite. En una cookie se almacena nicamente la informacin proporcionada por usted o las opciones que elija mientras visite un sitio Web. Por ejemplo, el sitio no puede conocer su direccin de correo electrnico si usted no la escribe. Permitir que un sitio Web cree una cookie no facilita a ese sitio ni a otro cualquiera el acceso al resto de su equipo y slo puede leerlo el sitio que ha creado la cookie. Internet Explorer est configurado para permitir la creacin de cookies; no obstante, puede especificar que se le pregunte antes de que un sitio coloque uno en su disco duro, de forma que pueda autorizar o desautorizar la cookie o impedir que Internet Explorer acepte ninguno. Puede establecer diferentes configuraciones para las distintas zonas de seguridad. Por ejemplo, puede permitir que los sitios Web creen cookies si

estn en su zona de sitios en los que se confa o en la zona intranet local, preguntarle antes de crearlas si estn en su zona Internet y no permitir nunca los que estn en su zona de sitios restringidos. Ud. habr quizs escuchado alguna queja sobre las cookies y de cmo roban informacin de su computadora. Existe un concepto errneo generalizado entre el pblico sobre qu es una cookie, qu hace y qu informacin puede transferir. Echemos un vistazo ms a fondo a este asunto. 12. Como una cookie no es nada ms que una pequea informacin que un servidor Web ha pedido educadamente a su explorador Web que almacene, no debera ser capaz de almacenar datos binarios, por lo que tericamente no es posible que introduzca virus y caballos de Troya en su computadora. Generalmente, los servidores almacenan datos como su nombre o cualquier otra informacin que le identifique, de modo que puedan disponer de un perfil suyo cuando vuelva a visitar dicho sitio. La percepcin general que tiene el pblico es que dichas cookies contienen informacin confidencial, por ejemplo el nmero de su tarjeta de crdito. Por supuesto, un sitio Web podra almacenar dicha informacin, pero no es lo usual. Si le preocupa lo que se est almacenando, puede activar determinadas opciones en su explorador para que ste le pregunte antes de escribir una cookie o bien para que las cookies no se escriban nunca. En general, las cookies no deberan causar ninguna alarma. Fueron inventados y, generalmente, se han usado para mejorar la navegacin por la Web. Sin embargo, depende del software del explorador implementar las cookies de forma segura y es responsabilidad de los administradores Web hacer un uso razonable y responsable de ellas. Si su explorador escribe los datos de la cookie en un archivo y luego, por diversin, decide ejecutar el archivo, est claro que no es una implementacin segura. De forma similar, si una tienda interactiva por correo electrnico decide almacenar su nmero de tarjeta de crdito en una cookie y luego permite que dicha cookie sea recuperada de forma no segura, entonces su nmero de tarjeta podra ser rpidamente del dominio pblico. Si frecuenta los sitios comerciales en lnea, puede hacer que su explorador le advierta antes de que se active una cookie, o incluso que rechace todas. Consulte las preferencias de seguridad de su explorador Web para ver las opciones de aceptacin de cookies; si establece que se rechacen todas, no se contrare cuando dejen de funcionarle muchos sitios que no le recuerdan entre visitas o que usan carros de la compra en lnea. Las cookies constan de un nombre de variable, el valor de la variable, la mquina que activa la cookie y la fecha en la que caducar y ser eliminada. Cuando un explorador de cliente vuelve a un sitio en el que se haba definido una cookie, pasa de nuevo la informacin de sta al servidor, lo que hace que dicha informacin est disponible para cualquier programa de software que la necesite. Cmo se define una cookie? El software de servidor Web enva una orden Set-Cookie al cliente como parte del mensaje de cabecera. Por ejemplo, en http://web-sniffer.net introduzca http://www.yahoo.com y obtendr un resultado como el siguiente:

13. Si quiere revisar las cookies almacenadas en su equipo y est usando Interner Explorer en Windows XP, mediante Windows Explorer vaya al directorio C:\Documents and Settings\nombre_usuario\Cookies. En Windows 7 y Vista vaya a C:\Usuario\nombre_usuario\AppData\Roaming\Microsoft\Windows\Cookies. Haca clic con el botn derecho para abrir y ver el contenido de una cookie reciente. Elimine las cookies que usted no desea que sigan almacenadas en su equipo.

14. Si quiere revisar (o eliminar) las cookies almacenadas en su equipo y est usando Firefox, vaya a Herramientas | Opciones | Privacidad y pulse Eliminar cookies de forma individual.

15. Con Internet Explorer existen tres opciones para manejar las cookies: a) Permitir que las cookies sean creadas, b) Ser advertido por Internet Explorer antes de que se cree la cookie, c) Impedir que se cree la cookie. Para activar manualmente una de estas 3 opciones en Internet Explorer 7, seleccione Herramientas | Opciones de Internet. Haga clic sobre la pestaa Privacidad y luego pulse la tecla Avanzada.

16. (Opcional). Como se mencion al principio existen varias herramientas tipo proxy interno, para mostrar el trfico HTTP en tiempo real. Uno de ellos es HTTP Analyzer, que se encuentra en la carpeta Captura\HTTP Analyzer del DVD. Instale el programa. Para fines didcticos puede intentar registrarlo con alguno de los seriales que se encuentran en el archivo Registro.txt en esa misma carpeta. Corra el programa desde Windows mediante IEInspector | HTTPAnalyzer | Launch HTTPAnalyzer Stand-alone.

17. Active la captura pulsando el botn Start y conctese mediante un browser a un sitio Web (por ejemplo http://vmendillo.blogspot.com, http://www.google.com o http://www.yahoo.com).

18. Observe cmo el programa captura y analiza el trfico HTTP en tiempo real, mostrando una amplia gama de informacin, incluyendo cabecera, contenido, cookies, peticin y respuesta, URLs de redireccin y mucho ms. Dispone de un generador de peticiones que le permite lanzar una peticin HTTP/HTTPS. Tambin proporciona informacin de cach, finalizacin de sesin, as como informacin acerca de los cdigos de estado HTTP y varias opciones de filtrado. Es una herramienta de desarrollo muy til para realizar anlisis de desempeo, depuracin y diagnstico. Tambin sirve para probar exploits contra vulnerabilidades en aplicaciones Web, por ejemplo buffer overflow, SQL injection, Cross Site Scripting (XSS). 19. Pare la captura y analice el contenido de los mensajes HTTP. 20. Una variante de HTTP Analyzer se integra en la parte inferior de la ventana de Internet Explorer y se puede abrir y cerrar desde la barra de herramientas de Internet Explorer. Tambin se puede abrir desde Windows mediante IEInspector | HTTPAnalyzer | Launch HTTPAnalyzer IE Add-on.

21. Pruebe su funcionalidad yendo a un sitio Web (por ejemplo http://vmendillo.blogspot.com).

22. Vaya a algunos de los siguientes sitios y repita las experiencias anteriores, analizando la solicitud y la respuesta: http://www.google.com - http://www.yahoo.com - http://www.youtube.com - http://www.eluniversal.com - http://www.el-nacional.com http://www.noticias24.com - http://www.noticias21.com http://ucv.edu.ve - http://ucab.edu.ve - http://www.unimet.edu.ve http://www.cantv.net http://www.movilnet.com.ve - http://www.movistar.com.ve - http://www.ieee.org