[Owasp-brazilian] Firewalls de Aplicação WEB, Idiomas e Expressões Regulares - Condições de Bypass

Nash Leon nashleon at yahoo.com.br
Thu Nov 19 11:27:10 EST 2009


Como vai, Wagner?

Vou me aprofundar um pouco em expressão regular pra tentar
deixar mais claro.

Quando a gente define uma lista [A-Z] numa expressão regular,
essa lista vai cobrir aquilo que está no intervalo "ASCII" de A(0x41)
a Z(0x5A).. logo, acentos não se encontram nesse intervalo, ok?

Se vocês verem o tela que coloquei no .pdf de caso de uso, verá
que estou num sistema com UTF-8 e charset definido para pt_BR,
por isso que eu consigo enviar na shell letras com acentos(É). Mas
a regex não conseguiu ser bem sucedida porque usou um intervalo.

Como o Fernando Cima citou, se a normatização/canonização do
WAF não levar em conta o idioma das aplicações que ele está
protegendo, ele poderá conter expressões regulares como a
lista[A-Z] mesmo rodando em UTF-8 passíveis de bypass quando
um atacante enviar letras com acentos. Por que por padrão
as bibliotecas de regex(como pcre, por exemplo, constroem a
lista apenas usando o intervalo ASCII).

De "http://gambasdoc.org/help/doc/pcre":

"In PCRE, \d, \D, \s, \S, \w, and \W recognize only ASCII characters."


Espero ter deixado mais claro o problema.

Podemos dizer que a aplicação não deveria mudar as letras com
acento para sem acento, mas vai dizer isso pra uma loja gigante
como as que citei no exemplo?

Então, é imperativo checar se o WAF está mesmo protegendo
a aplicação por validar as regras incluindo letras acentuadas
em suas regex.

O conceito de posix é interessante pois se a expressão
regular tiver algo como [[:alpha:]], ela vai procurar por
todo alfabeto do idioma da máquina, no nosso caso, procurará
por Á(ND), É(XECUTE), Í(NNER), Ô(R), Ü(NION)... :)


Um cordial abraço a todos,

Nash Leon.

--- Em qui, 19/11/09, Wagner Elias <wagner.elias at gmail.com> escreveu:

> De: Wagner Elias <wagner.elias at gmail.com>
> Assunto: Re: [Owasp-brazilian] Firewalls de Aplicação WEB, Idiomas e Expressões Regulares - Condições de Bypass
> Para: "Rodrigo Montoro(Sp0oKeR)" <spooker at gmail.com>
> Cc: "Nash Leon" <nashleon at yahoo.com.br>, owasp-brazilian at lists.owasp.org
> Data: Quinta-feira, 19 de Novembro de 2009, 14:07
> Nash,
> 
> como não é um problema de charset?
> 
> Ou o WAF não valida acentos ou a aplicação. No caso do
> exemplo que
> você disse que a app tira o acento (problema de charset) o
> problema é
> da app e não do WAF.
> 
> Abs.
> 
 


      ____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com


More information about the Owasp-brazilian mailing list