Saltar a contenido

03.-Análisis de la petición HTTP

La comunicación en el protocolo HTTP se basa en el intercambio de peticiones HTTP por parte del cliente y respuestas HTTP generadas por el servidor. Cada petición HTTP tiene una estructura definida que incluye los siguientes elementos:

Estructura de una petición HTTP

  1. Línea de petición: Es la primera línea de la petición y contiene:
    • El método HTTP utilizado (GET, POST, etc.).
    • El path de la URL que se desea consultar.
    • La versión del protocolo HTTP.
  2. Cabeceras de la petición: Proporcionan información adicional al servidor, como:
    • Cookies: Información enviada previamente por el servidor.
    • User-Agent: Indica el navegador o dispositivo cliente.
    • Host: Define el servidor remoto al que se dirige la petición.
  3. Cuerpo de la petición (opcional): Se incluye solo en ciertos métodos (como POST) y contiene parámetros o datos que deben procesarse en el servidor. Estos pueden estar en formatos como JSON, XML, binarios, etc.

Por ejemplo, al enviar los parámetros bookId y author en el cuerpo de una petición POST, el servidor puede utilizarlos para realizar búsquedas o insertar datos en una base de datos.

Métodos HTTP más comunes

  • GET: Solicita datos de un servidor sin incluir un cuerpo en la petición. Los parámetros se envían directamente en la URL.
  • POST: Envía datos al servidor en el cuerpo de la petición, como formularios, archivos o datos en JSON.
  • HEAD: Similar a GET, pero devuelve solo las cabeceras de la respuesta, sin incluir el cuerpo.
  • OPTIONS: Solicita al servidor información sobre los métodos HTTP que admite.
  • PUT: Sube un archivo o inserta datos en el servidor.
  • DELETE: Borra un recurso especificado en el servidor.
  • TRACE: Devuelve todos los datos enviados en la petición, utilizado para depuración.

Cabeceras HTTP más comunes

  • Accept: Tipos de contenido aceptados en la respuesta (texto, JSON, etc.).
  • Authorization: Utilizada para autenticación (como tokens o credenciales básicas).
  • Cache-Control: Indica si los datos de la respuesta pueden almacenarse en caché.
  • Content-Length: Especifica el tamaño de la petición en bytes.
  • Content-Type: Define el tipo de contenido del cuerpo (POST o PUT).
  • User-Agent: Informa sobre el navegador y sistema operativo del cliente.

Más información sobre cabeceras: List of HTTP Header Fields.

Estructura de una dirección URL

Una URL tiene varias partes, cada una con un propósito específico:

  1. Protocolo: Define el esquema de comunicación (HTTP o HTTPS).
  2. Dominio: Identifica el servidor al que se accede.
  3. Path: Indica la ruta o funcionalidad específica dentro del dominio.
  4. Parámetros: Representan los datos de entrada en forma de pares clave/valor, separados por el símbolo &.

Por ejemplo, en la URL:

https://www.ejemplo.com/productos?categoria=libros&id=123
  • Protocolo: https
  • Dominio: www.ejemplo.com
  • Path: /productos
  • Parámetros: categoria=libros y id=123

Este análisis permite comprender cómo se estructuran las peticiones y las respuestas en una auditoría HTTP, identificando posibles áreas de vulnerabilidad.

image-20250218183008046