[Rio-pm] Padrões de Código seguro
thiagoglauco em ticursos.net
thiagoglauco em ticursos.net
Sexta Janeiro 11 06:32:21 PST 2013
O %n coloca o comprimento da string de printf ou sprintf na variável e
serve para você controlar o tamanho de um string que foi criado de forma
dinâmica, por exemplo.
No exemplo, um atacante adiciona a string %n em uma variável de
ambiente.
Caso seu programa utilize printf ou sprintf e a string da variável de
ambiente maliciosa, alguma variável interna de seu programa pode ser
modificada e alterar o resto do processamento.
Em 2013-01-11 11:00, Tiago Peczenyj escreveu:
> A explicação eu li, o que eu não entendi é qual o uso do %n na vida
> real.
>
> 2013/1/11 <ulisses em ibiz.com.br>
>
>> a linha printf "$prompt: Password ok? %dn", $is_ok;
>>
>> é que seta $is_ok = 4 (no exemplo do site) pq $prompt contem ‘%n’
>> dentro dele e %n, no printf, faz com q a prox $var, no caso, $id_ok
>> receba 4 que o tamanho do string.
>>
>> veja explicacao na propria pagina:
>>
>> ... the %n instructed Perl to fill the first format string argument
>> with the number of characters printed, which caused Perl to set
>> the $is_ok variable to 4.....
>>
>>
>> veja on-liner abaixo:
>>
>> perl -e "my $prompt='1234567%n'; my $password='xxxx'; my $is_ok =
>> ($password eq 'goodpass'); printf "$prompt: Password ok? %dn", $is_ok;
>> print $is_ok;"
>> 1234567: Password ok? 0
>> 7
>>
>>
>>
>>
>>
>> ULISSES GOMES
>> Tecnologia da Informação
>>
>> IBIZ Tecnologia
>> +55 11 5579-3178 [6] r. 226
>> ulisses em ibiz.com.br
>> www.ibiz.com.br [7]
>>
>> Esta mensagem de correio eletrônico e seus documentos anexos estão
>> dirigidos EXCLUSIVAMENTE aos destinatários especificados. A informação
>> contida pode ser CONFIDENCIAL e/ou estar LEGALMENTE PROTEGIDA e não
>> necessariamente reflete a opinião da IBIZ. Se você receber esta
>> mensagem por ENGANO, por favor, comunique imediatamente ao remetente e
>> ELIMINE-A já que você NÃO ESTÁ AUTORIZADO ao uso, revelação,
>> distribuição, impressão ou cópia de toda ou alguma parte da informação
>> contida. Obrigado.
>>
>>
>>
>> FROM: Solli Honorio
>> SENT: Friday, January 11, 2013 10:26 AM
>> TO: Perl Mongers Rio de Janeiro
>>
>> SUBJECT: Re: [Rio-pm] Padrões de Código seguro
>>
>>
>> perldoc -f sprintf
>>
>>
>> %n special: *stores* the number of characters output so far into
>> the next variable in the parameter list
>>
>> Agora, o que isto significa, não tenho idéia :D !!!
>>
>> Em 11 de janeiro de 2013 10:22, Tiago Peczenyj
>> <tiago.peczenyj em gmail.com> escreveu:
>>
>>> Divertido
>>>
>>> alguem pode me explicar o %n ?
>>>
>>>
>>> https://www.securecoding.cert.org/confluence/display/perl/IDS30-PL.+Exclude+user+input+from+format+strings
>>> [4]
>>>
>>> 2013/1/11 <thiagoglauco em ticursos.net>
>>>
>>>> Caros monges, a Cert (www.cert.org [1]) desenvolve padrões e
>>>> recomendações de segurança para a área de TI.
>>>> Achei bem interessante, pois eles têm recomendações para C, C++,
>>>> Java e Perl.
>>>>
>>>> www.securecoding.cert.org [2]
>>>>
>>>> Os padrões para Perl e C++ ainda estão em desenvolvimento. Eles
>>>> aceitam pitacos.
>>>>
>>>> regards.
>>>> _______________________________________________
>>>> Rio-pm mailing list
>>>> Rio-pm em pm.org
>>>> http://mail.pm.org/mailman/listinfo/rio-pm [3]
>>>
>>> --
>>> Tiago B. Peczenyj
>>> Linux User #405772
>>>
>>> http://about.me/peczenyj [5]
>>> _______________________________________________
>>> Rio-pm mailing list
>>> Rio-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/rio-pm [3]
>>
>> --
>> "o animal satisfeito dorme". - Guimarães Rosa
>>
>> -------------------------
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm [3]
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm [3]
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://about.me/peczenyj [5]
>
> Links:
> ------
> [1] http://www.cert.org
> [2] http://www.securecoding.cert.org
> [3] http://mail.pm.org/mailman/listinfo/rio-pm
> [4]
>
> https://www.securecoding.cert.org/confluence/display/perl/IDS30-PL.+Exclude+user+input+from+format+strings
> [5] http://about.me/peczenyj
> [6] tel:%2B55%2011%205579-3178
> [7] http://www.ibiz.com.br
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
Mais detalhes sobre a lista de discussão Rio-pm