linux - shockers - shellshock vulnerabilidad
¿Alguien puede explicar el código Shell Shock Bash? (1)
Esta pregunta ya tiene una respuesta aquí:
Tengo problemas para entender el siguiente código, que es el código de prueba de vulnerabilidad de Shell Shock. ¿Alguien puede explicar me lo? Especialmente, esta parte " () { :;};
"
env x=''() { :;}; echo vulnerable'' bash -c "echo this is a test"
env x=''() { :;}; echo vulnerable'' bash -c "echo this is a test"
¿Qué env
?
Desde los documentos, env
ejecuta programas en un entorno modificado
env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
es claro que x
es un nombre / variable y () { :;}; echo vulnerable''
() { :;}; echo vulnerable''
es el valor de la variable
ahora que es () { :;};
?
cuando se exporta una función, bash almacena su defensa como valor para la variable de entorno
$ x() {echo hello world;}
$ export x
$ env | grep x
x=() {echo hello world};
ahora cuando x=''() {:;}''
significa similar a la escritura
$ x() {:;}
$ export x
$ env | grep x
Es decir, indirectamente hemos export x
al nuevo entorno creado por el env
Aquí :
es una declaración nula en bash
Espero eso ayude