← Volver al inicio

HTTP

Objetivo

Entender HTTP, el protocolo base de la web. Antes de estudiar vulnerabilidades web, debes entender requests, responses, headers, cookies y codigos de estado.

Cliente y Servidor

En la web normalmente hay:

  • Cliente: navegador, app movil, script o herramienta como curl.
  • Servidor: aplicacion que responde peticiones.

El cliente envia una request. El servidor devuelve una response.

Request HTTP

Una request tiene:

  • Metodo.
  • Ruta.
  • Version.
  • Headers.
  • Body opcional.

Ejemplo:

GET /login HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0 Accept: text/html

Response HTTP

Una response tiene:

  • Codigo de estado.
  • Headers.
  • Body.

Ejemplo:

HTTP/1.1 200 OK Content-Type: text/html Set-Cookie: session=abc123; HttpOnly; Secure <html>...</html>

Metodos HTTP

MetodoUso comun
GETObtener informacion
POSTEnviar o crear informacion
PUTReemplazar recurso
PATCHActualizar parcialmente
DELETEEliminar
OPTIONSVer metodos permitidos

Codigos de Estado

CodigoSignificado
200OK
201Created
301/302Redirect
400Bad Request
401No autenticado
403No autorizado
404No encontrado
500Error del servidor

Headers Importantes

  • Host: dominio solicitado.
  • User-Agent: cliente usado.
  • Cookie: cookies enviadas.
  • Set-Cookie: cookie enviada por servidor.
  • Authorization: credenciales o token.
  • Content-Type: tipo de contenido.
  • Location: destino de redireccion.

Cookies

Una cookie es un dato que el servidor pide al navegador guardar y reenviar.

Uso comun:

  • Sesiones.
  • Preferencias.
  • Tracking.

Atributos importantes:

  • HttpOnly: JavaScript no puede leer la cookie.
  • Secure: solo se envia por HTTPS.
  • SameSite: reduce ciertos ataques CSRF.

HTTPS

HTTPS es HTTP sobre TLS.

TLS ayuda a proteger:

  • Confidencialidad.
  • Integridad.
  • Autenticidad del servidor.

Sin HTTPS, alguien en la red podria ver o modificar trafico.

Practica

Ejecuta:

curl -I https://example.com curl -v https://example.com

Documenta:

  • Codigo de estado.
  • Headers.
  • Si hay redireccion.
  • Tipo de contenido.
  • Diferencia entre -I y -v.

Criterio de Dominio

Puedes avanzar cuando puedas:

  • Explicar request y response.
  • Diferenciar GET y POST.
  • Explicar 401 vs 403.
  • Explicar cookies.
  • Explicar por que HTTPS importa.