Documentos de Académico
Documentos de Profesional
Documentos de Cultura
hipertexto (HTTP)
Info. Del usuario (user): componente opcional que contiene credenciales en el formulario; se
utiliza para identificar el host (anfitrión)
Anfitrión (host): ubicación del recurso. Puede ser nombre del host o dirección IP. Dos puntos
separan el host y un puerto
Puerto (port): las URL sin un puerto especificado apuntan al puerto predeterminado 80. Si el
puerto del servidor HTTPS no se está ejecutando en el puerto 80, se puede especificar en la
URL
Camino (path): esto es el recurso en el que se accede, puede ser un archivo o una carpeta, si
no se especifica la ruta, el servidor devuelve el índice predeterminado alojado por el (por
ejemplo, index.html)
Cadena de consulta (query string): la cadena de consulta esta precedida por un signo de
interrogación (?). Este componente puede ser opcional ya que se utiliza para pasar información
del recurso. Una cadena de consulta consta de un parámetro y un valor. En el ejemplo
anterior, el parámetro es login y value es verdadero. Puede variar los parámetros separados
por un ampersand (&)
Fragmentos (fragment): esto lo procesan los navegadores en el lado del cliente para ubicar
secciones dentro del recurso principal
No siempre se requieren todos los componentes para acceder a un recurso. Pero una URL
debe contener al menos un esquema y un host para realizar una solicitud adecuada
El HTTP tiene inconvenientes de seguridad haciendo que todos los datos transferidos por el
mismo estén sin cifrar haciendo que sea inseguro y fácil de hackear, utilizando herramientas
como Wireshark que son capases de analizar el tráfico de red haciendo que los datos sean
capaces de usarse con fines maliciosos, una forma para evitar esto fue la creación del
protocolo HTTPS (HTTP secure) que elimina estos problemas del anterior protocolo cifrando
los datos almacenados. El puerto predeterminado de este protocolo es 443
Sin embargo esto no es del todo seguro ya que dependiendo de las circunstancias, un atacante
puede realizar un ataque de degradación HTTP, que degrada la comunicación HTTPS a HTTP,
pudiendo logar evitar el cifrado de los datos. Esto se hace configurando un ataque man-in-the-
middle (MITM) y proxy pasando todo el tráfico del host del atacante sin el consentimiento del
usuario
Solicitud y respuesta
Burp Suite
Burp Suite es una herramienta que actúa cono servidor proxy y se puede utilizar para examinar
y modificar solicitudes HTTP. Proporciona un proxy que puede enrutar el tráfico desde el
navegador atreves del proxy y ver las diversas solicitudes y respuestas entre el cliente y el
servidor web
Solicitud HTTP
Camino (path): el segundo campo es la ruta al recurso al que se accede. Este campo también
pu8ede tener un sufijo con una cadena de consulta
Versión (HTTP version): el tercer y último campo se utiliza para indicar la versión HTTP
Similar a la solicitud, una respuesta HTTP también contiene encabezados. La primera línea es la
versión HTTP mientras que la segunda denota el código de respuesta HTTP, estos códigos se
utilizan para determinar si la solicitud se realizo correctamente o no. El cuerpo de la respuesta
generalmente se define con código HTML aunque también puede responder con otros tipos de
códigos como JSON, hojas de estilo, scripts, un documento o incluso un pdf
Encabezados
Los encabezados HTTP proporcionan una forma adicional de pasar información entre el cliente
y el servidor. Hay encabezados específicos para solicitudes y respuestas, así como encabezados
comunes para ambos. Los encabezados pueden tener uno o mas valores anexados después del
nombre del encabezado y separados por 2 puntos (:). Hay muchos encabezados que se utilizan
para diferentes propósitos las cuales se dividen en diferentes categorías:
1. General Headers
2. Entity Headers
3. Request Headers
4. Response Headers
5. Security Headers
https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html
Encabezamiento Descripción
Date El encabezado Date contiene la fecha y hora en que se originó el
mensaje. Se prefiere convertir la zona horaria UTC estándar
Ejemplo
<SINP>
Date: Sun, 06 Aug 2020 08:49:37 GMT
Connection: Keep-alive
Encabezamient Descripción
o
Content-Type Este encabezado se utiliza para describir el tipo de recurso que se
transfiere. Los navegadores agregan automáticamente el valor en el lado
del cliente y lo devuelven en la respuesta del servidor.
Media-Type El media-type describe los datos que se pasan. Por ejemplo, el tipo de
medio de un PDF es application/pdf, mientras que en el tipo de una
imagen PNG es image/png. Este encabezado puede jugar un papel crucial
para que el servidor interprete nuestra entrada. El campo charset denota
el estándar de codificación, como UTF-8
Boundary La directiva boundary actúa como un creador para separar contenido
cuando hay mas de uno en el mismo mensaje
Content-Length El encabezado Content-Length contiene el tamaño de la entidad que se
pasa. Este encabezado es necesario ya que el servidor lo usa parta leer
datos del cuerpo del mensaje
Content- Los datos pueden sufrir múltiples transformaciones antes de pasar. Por
Encoding ejemplo, se pueden comprimir grandes cantidades de datos para reducir
el tamaño del mensaje> el tipo de codificación que se utiliza debe
especificarse con el encabezado Content-Encoding
Ejemplo
<SNIP>
Content-Length: 26012
Content-Type: text/html; charset=ISO-8859-4
Content-Encoding: gzip
Encabezamiento Descripción
Ejemplo
Host: www.inlanefreight.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS x 10_14_5) AppleWebkit/605.1.15
(KHTML, like Gecko)
Cookie: cookie1=298zf09hf012fh2; cookie2=u32t4o3tb3gg4
Accept: text/plain
Referer: https://www.hackerthebox.eu/
Authorization: BASIC cGFzc3dvcmQK
<SNIP>
https://tools.ietf.org/html/rfc7231#section-6
Encabezamiento Descripción
Ejemplo
<SNIP>
Server: Apache/2.2.14 (Win32)
Set-Cookie: name1=value1, name=value2; Expires=wed, 09 Jun 2021 10:18:14 GMT
WWW-Authenticate: BASIC realm=”Localhost”
El proyecto de encabezados seguros de OWASP es un gran recurso para leer mas sobre las
diversas posibilidades de encabezados de seguridad HTTP
Encabezamiento Descripción
Ejemplo
<SNIP>
Content-Security-Policy: script-src ‘self’
Strict-Transport-Security: max-age=31536000
Referrer-Policy: origin
La anterior lista cubre algunos de los encabezados HTTP que se ven comúnmente. Sin
embargo, hay ,muchos mas encabezados contextuales que se pueden utilizar durante la
comunicación. También es posible que las aplicaciones definan encabezados personalizados
según sus requisitos. Puede encontrar una lista completa de encabezados HTTP estándar en el
siguiente link
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
Método Descripción
Nota: Tanto “PUT” como “DELETE” suelen estar asociados con servidores WebDAV,
de los que hablaremos más adelante
Có digos de respuesta
El servidor utiliza los códigos de estado HTTP para decirle al cliente si la solicitud se proceso
correctamente. Un servidor HTTP puede devolver cinco tipos de códigos de respuesta:
Tipo Descripción
Tipo Descripción
Un ejemplo común de ver re direccionamientos es durante las compras en línea, donde los
sitios web lo re direccionan a la pasarela de pago
Tipo Descripción
Tipo Descripción
Tipo Descripción
Mé todo GET
El método HTTP más utilizado es el método GET el cual tiene como objetivo principal es
solicitar un recurso determinado y recuperarlo. Es posible enviar datos a través de la solicitud
GET con la ayuda de parámetros de consulta. Pero son limitados estos datos y debe utilizar
post si se necesita más información