Tuesday, February 09, 2010

BASH CGI PARAMETER PARSING

Fiz um parser de parametros CGI para bash:

parse_cgi_params(){
# Validate CGI query format
PARAMSTR=$1
export CGI_PARAM_STR=$PARAMSTR
while ! [ -z $PARAMSTR ]; do
[[ $PARAMSTR =~ "^&?([0-9a-zA-Z_]+)=?([0-9a-zA-Z._]*)" ]]
PAIR=${BASH_REMATCH[0]}
KEY=${BASH_REMATCH[1]}
VALUE=${BASH_REMATCH[2]}
PLENGTH=${#PAIR}
PARAMSTR=${PARAMSTR:$PLENGTH}
[ -z $PAIR ] && PARAMSTR=""
export CGI_PARAM_${KEY}="$VALUE"
done
}

O resultado fica em variáveis da forma CGI_PARAM_<chave>=<valor>.

Alguma vulnerabilidade óbvia?

Friday, February 05, 2010

Ana conta a sua história

Ana: Não acha os nomes Gualter e Berta bonitos? Pensar que os meus pais tinham nomes bonitos alivia-me muito. Quando imagino que o meu pai, oh... podia ter-se chamado Godofredo... Até sinto um arrepio...

Marília: Eu nao acho tao importante o Nome de uma pessoa. Para mim só conta o seu bom comportamento.

Ana: Hmmm, não estou assim tão certa. Tomemos por exemplo uma Rosa. Uma Rosa é muito bonita e cheira muito bem, e o seu nome é extraordinariamente belo. É difícil até de imaginar - acho que não se poderia apreciar tão bem o seu aspecto e o cheiro se ela se chamasse cheirete. Se o nome do meu pai fosse Godofredo, certamente não estaria em posição de o apreciar como ele merecia...

(Ana dos Cabelos Ruivos, episódio 4 - Ana conta a sua história)