User Tools

Site Tools


evitar_crlf_injection_en_nginx_mediante_request_uri

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
evitar_crlf_injection_en_nginx_mediante_request_uri [2021/11/05 14:14] – created busindreevitar_crlf_injection_en_nginx_mediante_request_uri [2021/11/05 14:26] (current) busindre
Line 1: Line 1:
-====== Evitar inyewcción CRLF en Nginx ======+====== Evitar inyección CRLF en Nginx usando $request_uri ======
  
 **¿Qué es la combinación CRLF?** **¿Qué es la combinación CRLF?**
Line 6: Line 6:
  
 El servidor web utiliza la combinación CRLF para entender cuándo empieza una nueva cabecera HTTP y cuándo termina otra. El CRLF también puede indicar a una aplicación web o a un usuario que comienza una nueva línea en un archivo o en un bloque de texto. Los caracteres CRLF son un mensaje estándar de HTTP/1.1, por lo que son utilizados por todos los servidores web, incluyendo Apache, Nginx, Microsoft IIS y otros. El servidor web utiliza la combinación CRLF para entender cuándo empieza una nueva cabecera HTTP y cuándo termina otra. El CRLF también puede indicar a una aplicación web o a un usuario que comienza una nueva línea en un archivo o en un bloque de texto. Los caracteres CRLF son un mensaje estándar de HTTP/1.1, por lo que son utilizados por todos los servidores web, incluyendo Apache, Nginx, Microsoft IIS y otros.
- 
-En NGinx esto es fácil de resolver, simplemente evitando las variables "$uri" o "$document_uri" en beneficio de "$request_uri", la cual no interpreta los caracteres CRLF. 
  
 Ejemplo de cabeceras y código html. Ejemplo de cabeceras y código html.
Line 61: Line 59:
  
 En las aplicaciones web, una inyección de CRLF puede tener un impacto severo, dependiendo de lo que la aplicación haga con los bloques de solicitud. Las consecuencias pueden ir desde la divulgación de información hasta la ejecución de código, una vulnerabilidad de seguridad de aplicaciones web de impacto directo. No solo a nivel de cabeceras, si no que los logs pueden ser también afectados y se podrían generar logs falsos. En las aplicaciones web, una inyección de CRLF puede tener un impacto severo, dependiendo de lo que la aplicación haga con los bloques de solicitud. Las consecuencias pueden ir desde la divulgación de información hasta la ejecución de código, una vulnerabilidad de seguridad de aplicaciones web de impacto directo. No solo a nivel de cabeceras, si no que los logs pueden ser también afectados y se podrían generar logs falsos.
 +
  
 ===== Evitar inyección CRLF en Nginx ===== ===== Evitar inyección CRLF en Nginx =====
 +
 +En Nginx esto es fácil de resolver, simplemente evitando las variables "$uri" o "$document_uri" en beneficio de "$request_uri", la cual no interpreta los caracteres CRLF.
  
 **Nginx usando $uri / $document_uri** **Nginx usando $uri / $document_uri**
Line 72: Line 73:
 Test de ineyección CLRF. Test de ineyección CLRF.
 <code>curl -v "http://localhost/test/%0d%0aX-TEST:%20CLRF" <code>curl -v "http://localhost/test/%0d%0aX-TEST:%20CLRF"
-*   Trying 127.0.0.1:80... +
-* Connected to localhost (127.0.0.1) port 80 (#0)+
 > GET /test/%0d%0aX-TEST:%20CLRF HTTP/1.1 > GET /test/%0d%0aX-TEST:%20CLRF HTTP/1.1
 > Host: localhost > Host: localhost
Line 106: Line 106:
  
 Test de inyección CLRF. Test de inyección CLRF.
-<code> +<code>curl -v "http://localhost/test/%0d%0aX-TEST:%20CLRF" 
- curl -v "http://localhost/test/%0d%0aX-TEST:%20CLRF" +
-*   Trying 127.0.0.1:80... +
-* Connected to localhost (127.0.0.1) port 80 (#0)+
 > GET /test/%0d%0aX-TEST:%20CLRF HTTP/1.1 > GET /test/%0d%0aX-TEST:%20CLRF HTTP/1.1
 > Host: localhost > Host: localhost
evitar_crlf_injection_en_nginx_mediante_request_uri.1636118040.txt.gz · Last modified: 2021/11/05 14:14 by busindre