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 <ulis...@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
ulis...@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.pecze...@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 <thiagogla...@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@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@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm [3]
--
"o animal satisfeito dorme". - Guimarães Rosa
-------------------------
_______________________________________________
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm [3]
_______________________________________________
Rio-pm mailing list
Rio-pm@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@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm