😎
WEB
YouTubeTwitterLinkedIn
  • La Biblia del Hacking en Web
    • ADVERTENCIA
    • Conoce a tu academia
    • Conoce a tu instructor
    • Aprende Hacking Web con los laboratorios de PortSwigger
  • SQL Injection
    • ¿SQL Injection?
    • Lab 1: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data
    • Lab 2: SQL injection vulnerability allowing login bypass
    • Lab 3: SQL injection attack, querying the database type and version on Oracle
    • Lab 4: SQL injection attack, querying the database type and version on MySQL and Microsoft
    • Lab 5: SQL injection attack, listing the database contents on non-Oracle databases
    • Lab 6: SQL injection attack, listing the database contents on Oracle
  • Cross Site Scripting
    • ¿XSS?
    • Lab 1: Reflected XSS into HTML context with nothing encoded
    • Lab 2: Stored XSS into HTML context with nothing encoded
    • Lab 3: DOM XSS in document.write sink using source location.search
    • Lab 4: DOM XSS in innerHTML sink using source location.search
    • Lab 5: DOM XSS in jQuery anchor href attribute sink using location.search source
  • ClickJacking
    • ¿Clickjacking?
    • Lab 1: Basic clickjacking with CSRF token protection
  • Access control vulnerabilities
    • ¿Control de Acceso?
    • Lab 1: Unprotected admin functionality
    • Lab 3: User role controlled by request parameter
  • Path traversal
    • ¿Path Traversal?
    • Lab 1: File path traversal, simple case
    • Lab 2: File path traversal, traversal sequences blocked with absolute path bypass
    • Lab 3: File path traversal, traversal sequences stripped non-recursively
  • XML external entity (XXE) injection
    • ¿XML external entity?
    • Lab 1: Exploiting XXE using external entities to retrieve files
    • Lab 2: Exploiting XXE to perform SSRF attacks
    • Lab 3: Blind XXE with out-of-band interaction
  • JWT
    • ¿JWT?
    • Lab 1: JWT authentication bypass via unverified signature
    • Lab 2: JWT authentication bypass via flawed signature verification
    • Lab 3: JWT authentication bypass via weak signing key
    • Lab 4: JWT authentication bypass via jwk header injection
    • Lab 5: JWT authentication bypass via jku header injection
  • Server-side request forgery (SSRF)
    • ¿SSRF?
    • Lab 1: Basic SSRF against the local server
  • OS command injection
    • ¿OS Command Injection?
    • Lab 1: OS command injection, simple case
  • Authentication
    • ¿Authentication?
    • Lab 1: Username enumeration via different responses
  • HTTP request smuggling
    • ¿HTTP request smuggling?
    • Lab 1: HTTP request smuggling, confirming a CL.TE vulnerability via differential responses
  • Server-side template injection
    • ¿Server-side template injection?
    • Lab 1: Basic server-side template injection
  • DOM-based vulnerabilities
    • Lab 1: DOM XSS using web messages
    • Lab 2: DOM XSS using web messages and a JavaScript URL
  • WebSockets
    • Lab #1: Manipulating WebSocket messages to exploit vulnerabilities
  • Prototype pollution
    • ¿Prototype Pollution?
    • Lab 1: Client-side prototype pollution via browser APIs
      • Utilizando DOM Invader
    • Lab 2: DOM XSS via client-side prototype pollution
    • Lab 3: DOM XSS via an alternative prototype pollution vector
      • Utilizando DOM Invader
    • Lab 4: Client-side prototype pollution via flawed sanitization
    • Lab 5: Client-side prototype pollution in third-party libraries
    • Lab 6: Privilege escalation via server-side prototype pollution
    • Lab 7: Detecting server-side prototype pollution without polluted property reflection
    • Lab 8: Bypassing flawed input filters for server-side prototype pollution
    • Lab 9: Remote code execution via server-side prototype pollution
    • Lab 10: Exfiltrating sensitive data via server-side prototype pollution
  • GraphQL
    • Lab 1: Accessing private GraphQL posts
  • Web cache poisoning
    • Lab 1: Web cache poisoning with an unkeyed header
  • CORS
    • Lab #2 - CORS vulnerability with trusted null origin
    • Lab 3: CORS vulnerability with trusted insecure protocols
  • API testing
    • Lab #1: Exploiting an API endpoint using documentation
    • Lab #2: Exploiting server-side parameter pollution in a query string
    • Lab #3: Finding and exploiting an unused API endpoint
    • Lab #4: Exploiting a mass assignment vulnerability
    • Lab #5: Exploiting server-side parameter pollution in a REST URL
Con tecnología de GitBook
En esta página
  • ¿Qué es HTTP Request Smuggling?
  • ¿Cómo Funciona HTTP Request Smuggling?
  • Pasos del ataque:
  • Ejemplo de HTTP Request Smuggling
  • Impacto de HTTP Request Smuggling
  • Mitigación de HTTP Request Smuggling

¿Te fue útil?

  1. HTTP request smuggling

¿HTTP request smuggling?

¿Qué es HTTP Request Smuggling?

HTTP Request Smuggling (HRS) es una vulnerabilidad en la que un atacante interfiere con la forma en que un servidor web maneja las solicitudes HTTP, permitiendo que una solicitud maliciosa sea enviada a través de un servidor proxy o firewall sin ser detectada. Esta vulnerabilidad puede ser explotada para realizar diversos ataques, como la elusión de seguridad, la obtención de información sensible o la realización de ataques de denegación de servicio (DoS).

¿Cómo Funciona HTTP Request Smuggling?

HTTP Request Smuggling se aprovecha de las diferencias en la forma en que los servidores (por ejemplo, front-end proxies y back-end servers) manejan y procesan las solicitudes HTTP. La vulnerabilidad surge debido a la inconsistencia en el manejo de los encabezados HTTP, específicamente los encabezados Content-Length y Transfer-Encoding.

Pasos del ataque:

  1. Desincronización de Solicitudes: El atacante envía una solicitud maliciosa diseñada para desincronizar cómo el servidor front-end y el servidor back-end interpretan la longitud de la solicitud. Esto generalmente se logra utilizando encabezados Content-Length y Transfer-Encoding conflictivos.

  2. Inserción de una Solicitud Maliciosa: La solicitud maliciosa se inserta en el flujo de tráfico HTTP y se interpreta de manera diferente por los servidores. Mientras que el servidor front-end puede considerar que la solicitud está completa, el servidor back-end puede ver datos adicionales, interpretándolos como una nueva solicitud.

  3. Ejecución de la Solicitud Maliciosa: La solicitud maliciosa llega al servidor back-end como una solicitud completamente nueva, permitiendo al atacante ejecutar acciones no autorizadas.

Ejemplo de HTTP Request Smuggling

Supongamos que un servidor front-end utiliza Content-Length para determinar el final de una solicitud, mientras que el servidor back-end utiliza Transfer-Encoding. Un atacante podría enviar la siguiente solicitud:

POST / HTTP/1.1
Host: victima.com
Content-Length: 13
Transfer-Encoding: chunked

0

GET /malicious HTTP/1.1
Host: victima.com

En este caso:

  • El servidor front-end puede interpretar la solicitud como un POST con un cuerpo vacío (debido al Content-Length: 13).

  • El servidor back-end, utilizando Transfer-Encoding: chunked, puede ver GET /malicious HTTP/1.1 como una nueva solicitud completa.

Impacto de HTTP Request Smuggling

El impacto de la explotación de HRS puede ser significativo y variado:

  1. Elusión de Seguridad: Un atacante puede eludir controles de seguridad como firewalls y sistemas de detección de intrusos (IDS).

  2. Robo de Información: Posibilidad de obtener información sensible de otras solicitudes HTTP.

  3. Manipulación de Contenido: Alterar las respuestas del servidor para incluir contenido malicioso.

  4. Denegación de Servicio (DoS): Causar desincronización en el manejo de solicitudes, resultando en la interrupción del servicio.

Mitigación de HTTP Request Smuggling

Para protegerse contra HRS, es crucial implementar varias medidas de seguridad:

  1. Consistencia en el Manejo de Encabezados: Asegurarse de que todos los servidores en la cadena de procesamiento de solicitudes HTTP manejen los encabezados Content-Length y Transfer-Encoding de manera consistente.

  2. Deshabilitar Transfer-Encoding cuando no sea Necesario: Si no se necesita, deshabilitar el uso de Transfer-Encoding: chunked en el servidor.

  3. Actualizar y Parchear Software: Mantener los servidores web y proxies actualizados con los últimos parches de seguridad.

  4. Inspección de Solicitudes: Implementar inspección y validación rigurosas de las solicitudes HTTP para detectar y rechazar patrones maliciosos.

AnteriorLab 1: Username enumeration via different responsesSiguienteLab 1: HTTP request smuggling, confirming a CL.TE vulnerability via differential responses

Última actualización hace 11 meses

¿Te fue útil?