vulnerability vulnerabilidad shockers shellshock juego linux bash unix ubuntu shellshock-bash-bug

linux - shockers - shellshock vulnerabilidad



¿Alguien puede explicar el código Shell Shock Bash? (1)

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