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