Workshop de HTTP leaked version 1



Documentos relacionados
HTTP Introducción. Redes de Datos Ing. Marcelo Utard / Ing. Pablo Ronco FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES

Funcionamiento de Servicios Web, FTP

HOW TO SOBRE REMOTE ACCESS VPN MODE EN LINUX

Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

COMO INSTALAR Y CONFIGURAR UN SERVIDOR DNS

PRESENTACIÓN NOMBRE: Kelvin José Jiménez Matos MATRÍCULA: SECCIÓN: (1) CENTRO DE ESTUDIOS: INSTITUTO TECNOLÓGICO DE LAS AMERICAS (ITLA)

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

Redes de Computadoras Práctica 4: World Wide Web

CGI. Qué significa CGI?

Práctica 3: Estudio de los protocolos HTTP, SMTP, POP3 e IMAP mediante un analizador de red: Wireshark

La web (el servicio WWW)

Tema 2 El Servicio Web

PRACTICA DE REDES Redes Ad Hoc

Ubuntu Server HOW TO : SERVIDOR VPN. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como usar vpn. Qué es una VPN?

Introducción a las Redes de Computadoras. Obligatorio

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Protocolo HTTP Apache. Servicios HTTP. Esteban De La Fuente Rubio L A TEX. Universidad Andrés Bello. 17 jun 2011

Ubuntu Server HOW TO : SQUID. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar servidor proxi Squid.

Aplicaciones Cliente/Servidor en Gambas Prof: Mileti, P.

MANUAL DE USO PROGRAMA DE GESTIÓN AGENCIAS DE VIAJES

Enlace web remoto a travez de SSh Juan Badilla Riquelme Anibal Espinoza Moraga Cesar Reyes Pino

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

TUTORIAL PARA CREAR UN SERVIDOR FTP

Rawel E. Luciano B Sistema Operativo III 15- SERVIDOR . José Doñe

How to: Servidor DHCP en Windows Server En este tutorial instalaremos:

MANUAL DE CREACIÓN DE CARPETAS PARA ACCESO POR FTP DE CLIENTES EN UN NAS

Práctica 6 - Página Web

Software de Comunicaciones. Práctica 7 - Secure Shell. SSH

Capa de Aplicación (Parte 2 de 2)

Informàtica i Comunicacions Plaça Prnt. Tarradellas, FIGUERES (Girona) Tel Fax

CuteFTP Manual de configuración

SERVIDOR WEB MULTIPLATAFORMA CON IMPLEMENTACIÓN CGI

Pasos para instalar y configurar Microsoft SQL Server 2000.

RESUMEN DEL VÍDEO TUTORIAL CÓMO ABRIR UNA CUENTA GRATUITA EN UN SERVIDOR DE STREAMING PARA UNA RADIO POR INTERNET

Host. En este texto, entenderemos por host toda máquina - léase computadora. Cuenta. Una cuenta, en general, es un espacio de memoria y de disco que

Instituto Tecnológico de Las Américas (ITLA)

Curso PHP. Servidores

CONFIGURACIÓN BÁSICA DE UNA VPN EN WINDOWS XP PROFESIONAL

Encriptación en Redes

Desarrollo y servicios web

El primer arranque del Servidor Escolar TopSchool. U s u a r i o: topadmin P a s s w o r d: Top.school

INSTITUTO TECNOLOGICO DE TUXTEPEC Departamento de Sistemas y Computación

Unidad Didáctica 12. La publicación

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

Al ejecutar esta aplicación tenemos lo siguiente: Pulsamos en Wizard mode y nos aparece lo siguiente:

Y por último, si se desea que despliegue un mensaje de confirmar al pagar, cada vez que se presione el botón Aceptar cuando se quiera pagar.

Instalación de FileZilla FTP Server

Laboratorio de Redes y Sistemas Operativos Trabajo Práctico Final

SISTEMAS DE NOMBRES DE DOMINIO

Internet Information Server

Instituto Tecnológico de Las Américas (ITLA)

Vamos a explicar como configurar una cuenta IMAP en Pegasus y como enviar correo usando autentificación en salida y protocolo TLS.

Libro de estrategias de CA Clarity

URL. Después de los dos puntos: se interpreta según el método de acceso. Suele contener direcciones y puntos de acceso en una máquina. Esquema URL.

Guia rápida EPlus Cliente-Servidor

Solución de actividad 2.2.5: Uso de NeoTrace para ver Internetworks

Tutorial: Primeros Pasos con Subversion

Como detectar conexión del Servidor y SQL?

5. Composer: Publicar sus páginas en la web

Servidor FTP en Ubuntu Juan Antonio Fañas

Guía rápida de instalación Cámara CCTV-210

El servidor WEB Apache HTTPD. Tecnologías Web

Tutorial para subir un sitio web local a un sitio remoto

MANUAL CONFIGURACION UNIOVI WIFI EN MAC OS X

CapÍtulo 3: Manejo de Forms.

SmartFTP. Esta es la guía paso a paso para crear en SmartFTP tu cuenta FTP:

Almacenamiento virtual de sitios web HOSTS VIRTUALES

Internet Information Server

Practica 1 Instalación del SGBD. Ing. María Elena Reyes Castellanos. Miguel Ángel Garduño Córdova Isaac Méndez Hernández

BREVE INTRODUCCIÓN A IPSEC

Plantillas Office. Manual de usuario Versión 1.1

HyperText Transfer Protocol

Almacenamiento virtual de sitios web HOST VIRTUALES

Creación paso a paso de Formularios con Google (Parte I) (AKA: no corrijo nunca más!)

SERVIDOR WEB. Servidores web IIS (Windows) / Apache (Windows y Linux)

Luis Villalta Márquez

pchelpware, asistencia remota libre

Universidad Técnica Federico Santa María Departamento de Electrónica. Proyecto Redes de Computadores Elo322 Routers, Servidor Virtual y Seguridad

INSTITUTO TECNOLÓGICO DE LAS AMÉRICA ITLA

VMWare Converter. 1 de 12 01/12/2007 1:47

Servidor DNS en Centos. Programa Gestión de Redes de Datos. Ficha Aprendiz Gustavo Medina Fernando Patiño Luis F.

Si usted quiere desarrollar con Bluevia y Java, esto es lo primero que debe saber

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

Acá vamos a ocuparnos de cómo realizar la instalación de una red intra-aula sobre Linux, concretamente en la distribución de GNU/Linux Ubuntu 9.04.

Configuración de una NIC

MANUAL DE AYUDA MODULO TALLAS Y COLORES

Servidor DNS. DNSmasq. Rocío Alt. Abreu Ortiz

pchelpware, asistencia remota libre

66.69 Criptografía y Seguridad Informática FIREWALL

Instalación GIRH Licencias (JAVA)

Crear un servidor Web en IIS

Como crear un túnel entre dos PC s usando el Protocolo SSH

Transcripción:

66.62 Redes de Computadoras Workshop de HTTP leaked version 1 Matsunaga, Nicolás 1 esto significa que está más que incompleto 1. er cuatrimestre 2012

ÍNDICE Índice 1. Objetivo del apunte 2 2. Introducción 2 3. Consultas con telnet 2 3.1. Prueba 1 - Consulta Básica...................... 2 3.2. Prueba 2 - Redirección......................... 3 3.3. Prueba 3 - HTTP/1.1......................... 4 3.4. Prueba 4 - Virtualhosts......................... 5 3.5. Prueba 5 - Autenticación........................ 6 3.6. Prueba 6 - HEAD............................ 7 3.7. Prueba 7 - Método inexistente PGET................. 7 3.8. Prueba 8 - Proxy a un no-proxy.................... 8 3.9. Prueba 9 - método CONNECT.................... 9 1

1 Objetivo del apunte 1. Objetivo del apunte El objetivo de este apunte será introducir al alumno en el mundo real en el uso del protocolo HTTP, que es uno de los componentes de Internet más importantes. 2. Introducción Para las prácticas de este taller utilizaremos la siguientes herramientas: telnet: es un utilitario de entorno Linux/Unix/Windows que para establecer conexiones TCP en modo texto. 3. Consultas con telnet En esta sección veremos las consultas más típicas que pueden hacerse con el utilitario telnet. Por el momento nos restringiremos a realizar operaciones de tipo GET. Convención de colores en magenta indicaremos el Full-Request en verde resaltaremos algunos headers relacionados con una respuesta exitosa en rojo resaltaremos algunos headers relacionados con una respuesta no exitosa en azul resaltaremos el entity-body 3.1. Prueba 1 - Consulta Básica GET / HTTP/1.0 GET / HTTP/1.0 Date: Sun, 10 Jun 2012 10:36:37 GMT Last-Modified: Sun, 10 Jun 2012 10:36:27 GMT ETag: "86974-a-4c21bce3f40c0" Content-Length: 10 Anda bien 2

3.2 Prueba 2 - Redirección Aquí observamos que la petición fue exitosa y vemos como el server nos cierra la conexión. Además implementa correctamente HTTP 1.0 que especifica que la respuesta debe contener al header Content-Length. En servidores que no implementan correctamente, la longitud podría llegar a deducirse por el cierre de la conexión 2. Cuando especificamos un sólamente un directorio como URI, el servidor HTTP busca el archivo por default en dicho directorio. En este caso fue el index.html, pero esto depende de la configuración del servidor web. 3.2. Prueba 2 - Redirección GET /otros HTTP/1.0 GET /otros HTTP/1.0 HTTP/1.1 301 Moved Permanently Date: Sun, 10 Jun 2012 10:39:27 GMT Location: http://default.example.com/otros/ Content-Length: 325 Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>moved Permanently</h1> <p>the document has moved <a href="http://default.example.com/otros/">here</a>.</p> <hr> <address>apache/2.2.3 (CentOS) Server at default.example.com Port 80</address> </body></html> Aquí observamos que la respuesta es una redirección permanente. En este caso se debe a que el URI relativo /otros se refiere a un directorio y entonces el servidor HTTP interpreta que quisimos poner /otros/. Éso nos lo comunica a través del header Location. GET /otros/ HTTP/1.0 GET /otros/ HTTP/1.0 Date: Sun, 10 Jun 2012 10:40:11 GMT Last-Modified: Sun, 10 Jun 2012 10:39:14 GMT ETag: "86995-f-4c21bd8337880" 2 aunque podría ser el caso de que la conexión se cortó y nunca se sabría si todo el contenido fue transferido 3

3.3 Prueba 3 - HTTP/1.1 Content-Length: 15 otro contenido Ahora funciona correctamente. El rehacer la consulta con el URI especificado por el header Location nosotros hicimos a mano, pero el browser lo hace automáticamente. 3.3. Prueba 3 - HTTP/1.1 HTTP/1.1 400 Bad Request Date: Sun, 10 Jun 2012 10:40:53 GMT Content-Length: 310 Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>bad Request</h1> <p>your browser sent a request that this server could not understand.<br /> </p> <hr> <address>apache/2.2.3 (CentOS) Server at default.example.com Port 80</address> </body></html> Aquí intentamos hacer una petición similar a la de la subsección 3.1 pero sólo cambiando la versión de HTTP/1.0 a HTTP/1.1. Y vemos que no funciona porque se en HTTP 1.1 es obligatorio el uso del header Host. Lo que nos da es un código de estado 4XY 3, en particular el 400 que significa que la petición no está bien hecha. Host: 192.168.92.136 Host: 192.168.92.136 Date: Sun, 10 Jun 2012 10:42:29 GMT 3 Recordemos que los códigos 4XY corresponden a errores causados por el usuario. 4

3.4 Prueba 4 - Virtualhosts Last-Modified: Sun, 10 Jun 2012 10:36:27 GMT ETag: "86974-a-4c21bce3f40c0" Content-Length: 10 Anda bien Cuando le agregamos el header Host la petición es exitosa. 3.4. Prueba 4 - Virtualhosts Una funcionalidad que brinda HTTP 1.1 es el VirtualHosting. Esto permite que haya varios sitios hosteados en una misma IP. La discriminación para permitir elegir el sitio se hace a través del header Host. A continuación veremos dos Request- Lines idénticas () que dan resultados distintos ya que apuntan a distintos virtualhosts (ocio.example.com y trabajo.example.com). Host: ocio.example.com Host: ocio.example.com Date: Sun, 10 Jun 2012 10:43:53 GMT Last-Modified: Mon, 23 May 2011 19:42:31 GMT ETag: "8696d-12-4a3f6ac1237c0" Content-Length: 18 aca hacemos fiaca Host: trabajo.example.com Host: trabajo.example.com Date: Sun, 10 Jun 2012 10:45:28 GMT Last-Modified: Mon, 23 May 2011 19:42:49 GMT ETag: "8696e-18-4a3f6ad24e040" Content-Length: 24 5

3.5 Prueba 5 - Autenticación uy.. hay que laburar :( 3.5. Prueba 5 - Autenticación GET /secreto/ HTTP/1.0 GET /secreto/ HTTP/1.0 HTTP/1.1 401 Authorization Required Date: Sun, 10 Jun 2012 10:53:13 GMT WWW-Authenticate: Basic realm="webpage Top Secret" Content-Length: 485 Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>401 Authorization Required</title> </head><body> <h1>authorization Required</h1> <p>this server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn t understand how to supply the credentials required.</p> <hr> <address>apache/2.2.3 (CentOS) Server at default.example.com Port 80</address> </body></html> GET /secreto/ HTTP/1.0 Authorization: Basic YWx1bW5vOmVzdHVkaWFy GET /secreto/ HTTP/1.0 Authorization: Basic YWx1bW5vOmVzdHVkaWFy Date: Sun, 10 Jun 2012 11:00:33 GMT Last-Modified: Sun, 10 Jun 2012 10:48:26 GMT ETag: "86997-30-4c21bf91a5280" Content-Length: 48 si ves esto sabes el secreto para aprobar redes 6

3.6 Prueba 6 - HEAD Para saber cual es el secreto para aprobar la materia, busquen en Google base64 decoder y copien y peguen YWx1bW5vOmVzdHVkaWFy. Recuerden que en el URI la autenticación se ponía user:password o en este caso para darle más sentido user:secret :). 3.6. Prueba 6 - HEAD Con el método HEAD sólo traigo los header que hubiese obtenido de hacer una operación GET. HEAD /otros/karl640.jpg HTTP/1.0 HEAD /otros/karl640.jpg HTTP/1.0 Date: Sun, 10 Jun 2012 11:10:32 GMT Last-Modified: Sun, 10 Jun 2012 11:10:33 GMT ETag: W/"86996-5404-4c22226a70800" Content-Length: 21508 Content-Type: image/jpeg X-Pad: avoid browser bug Aquí podemos ver que el recurso al que apuntamos es una imagen jpeg cuyo tamaño es 21508 Bytes. 3.7. Prueba 7 - Método inexistente PGET Ahora vamos a pedirle una consulta de Proxy a un servidor HTTP. PGET http://www.google.com/ HTTP/1.0 PGET http://www.google.com/ HTTP/1.0 HTTP/1.1 501 Method Not Implemented Date: Sun, 10 Jun 2012 17:15:14 GMT Allow: GET,HEAD,POST,OPTIONS,TRACE Content-Length: 295 Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>501 Method Not Implemented</title> </head><body> <h1>method Not Implemented</h1> <p>pget to /index.html not supported.<br /> 7

3.8 Prueba 8 - Proxy a un no-proxy </p> <hr> <address>apache/2.2.3 (CentOS) Server at www.google.com Port 80</address> </body></html> Lo que observamos es que el servidor da un código 501, método no implementado. Acá vemos que no dió bad request ya que HTTP es extensible. También podemos ver el header Allow donde dice que métodos soporta el server al cual nos conectamos. 3.8. Prueba 8 - Proxy a un no-proxy GET http://www.google.com/ HTTP/1.0 GET http://www.google.com/ HTTP/1.0 Date: Sun, 10 Jun 2012 17:28:41 GMT Last-Modified: Sun, 10 Jun 2012 10:36:27 GMT ETag: "86974-a-4c21bce3f40c0" Content-Length: 10 Anda bien Notar que el servidor nos responde con su recurso /. Es decir que saca el network path de la URL. Además verificamos que la máquina ni siquiera tiene una ruta para dicho fqdn. Notar que sí resolvió el nombre porque sino no hubiese podido determinar qué no tiene una ruta hacia ese destino. # ping www.google.com connect: Network is unreachable Para terminar de convencernos que le saca el network path hacemos un request de http://www.google.com/otros/ pero nos delvolverá el recurso /otros/. GET http://www.google.com/otros/ HTTP/1.0 GET http://www.google.com/otros/ HTTP/1.0 Date: Sun, 10 Jun 2012 17:31:42 GMT Last-Modified: Sun, 10 Jun 2012 10:39:14 GMT 8

3.9 Prueba 9 - método CONNECT ETag: "86995-f-4c21bd8337880" Content-Length: 15 otro contenido 3.9. Prueba 9 - método CONNECT CONNECT www.facebook.com:443/ HTTP/1.0 # telnet 127.0.0.1 3128 Trying 127.0.0.1... Connected to coriolis.uyr.com.ar (127.0.0.1). CONNECT www.facebook.com:443/ HTTP/1.0 HTTP/1.0 200 Connection established...(acá es donde empieza la parte de tráfico segurizado) Aquí observamos el funcionamiento de HTTP en modo túnel a través de un proxy. De esta manera puede existir una comunicación encriptada end-to-end. Es decir, que NO hay encriptación y desencriptación en cada sistema intermedio. La encriptación es punto a punto, por eso es un túnel. 9