¿Exportar variables de env en el servidor? (Neurosis de guerra)

3

Acabo de leer sobre Shellshock y cómo funciona. Por lo que entendí, explota el hecho de que el código se está ejecutando incluso después de la exportación de la definición de la función que se exporta como una variable env.

¿Por qué el hecho de que pueda establecer variables de entorno en un servidor no es un gran problema de seguridad?

    
pregunta TheMeaningfulEngineer 26.09.2014 - 12:12
fuente

3 respuestas

7

El atacante no está configurando variables de entorno por su cuenta. Lo que está sucediendo es que la especificación CGI para la comunicación entre un servidor web y los ejecutables CGI dice que se deben pasar una serie de parámetros (como los encabezados HTTP) como variables de entorno.

Esto significa que un atacante no puede establecer variables sensibles como PATH o LD_LIBRARY_PATH , pero tienen control sobre otras como HTTP_USER_AGENT . Al ataque "shell shock" no le importa qué variables de entorno use, solo necesita la capacidad de hacer que una de ellas (cualquiera) parezca una función bash .

    
respondido por el Mark 26.09.2014 - 12:20
fuente
2

Otra fuente de vulnerabilidad son los encabezados HTTP como Authorization o Referer . Esto puede ser formado maliciosamente para inyectar algún comando Bash. Tenga en cuenta que todos los comandos se ejecutarán con el privilegio del usuario que se está ejecutando mod_cgi .

    
respondido por el codarrior 26.09.2014 - 12:43
fuente
0

Como dijo Mark, las variables de entorno no están configuradas en el servidor. Más bien, son valores que se eligen (no arbitrariamente) y se pasan como variables de entorno.

Para tener una idea de cómo se abusa de esto, aquí hay una publicación de blog de hace dos días con el HTTP_USER_AGENT dirigido específicamente.

enlace

    
respondido por el theCowardlyFrench 26.09.2014 - 12:30
fuente

Lea otras preguntas en las etiquetas