• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrotuga

pedidos HTTP demasiado estranhos (e estúpidos) será que são perigosos

12 mensagens neste tópico

Ora viva... encontrei aqui alguem que levantou no seu blog uma questão que eu já coloquei a mim próprio inúmeras vezes.

Leiam o seguinte artigo, é relativamente curto. Se olharem para o pedido notarão que não apresenta nenhum perigo conhecido. Pelo meno nem eu nem o autor do artigo conhecemos qualquer perigo num pedido daquele tipo. No entanto o autor do blog segue com uma solução para bloquear aquele tipo de pedidos.

http://perishablepress.com/press/2008/09/15/evil-incarnate-but-easily-blocked/

A questão que se coloca é: é perigoso? Porquê?

Sinceramente não me estou a ver a bloquear este tipo de pedidos usando uma directiva no .htaccess como o autor do blog faz. Que acham?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Naquele caso em especial, era um simples ataque de code injection + LFI (local file include). Bastava fazer coisas menos ortodoxas com o user-agent, ou fazeres includes à parva pegando logo na query (daí tentarem explorar a variável l) e podias ir com os porcos em três tempos (leia-se, entravam-te aí por trás à bruta que durante 2 semanas não abrias o bico).

Bloquear aquele tipo de pedidos é adicionar mais uma camada de protecção à aplicação, disfarçando alguns buracos que possam existir. Regra geral, desde que tenhas o mod_security no Apache, e bem configurado, não há muito com que te preocupares.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se eu percebi bem o que disseste isto só seria perigoso se alguem for buscar aquele parametro à querystring o o useragent e os usar (ou um deles) sem os sanear, certo?

Mas xiça, se uma aplicação usa assim dados vindos do utilizador à bruta... tambem é demasiado mal escrita.

Mas lá isso é verdade, é mais uma camada que pode sempre ser o salvador da pátria quando menos se espera, antes a mais do que a menos.

Alguem consegue lembrar-se de outro perigo que isto represente? Tipo ao nível do apache ou coisa assim.

Lembrei-me agora de um potencial perigo, pode ser uma injecção não na aplicaçao mas numa aplicação que use os logs, tipo awstats ou coisa assim, se alguem conseguir vislumbrar algum perigo naquela coisa esquisita...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda há pouco tempo descobri uma falha flagrante num plugin de estatísticas para o wordpress... o REFERER não era sanitized.... e dado que as estatisticas so podiam ser vistas pelo admin do blog, era só montar uma armadilha com XSS...

http://blog.rogeriopvl.com/archives/statpress-plugin-xss-vulnerability-disclosure

É possível que mais aplicações do género tenham esse problema, porque infelizmente muitos programadores acham que REFERER e UserAgent são inputs confiáveis pois é o browser que os envia.... só que por exemplo no caso do firefox basta uma extensão para qq utilizador mudar esses parametros facilmente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E há programadores que nem se lembram que ai pode estar uma falha que pode comprometer todo o sistema. Eu sou um deles  :D nunca me lembrei que pudessem atacar através do user-agent. Mas já está na to-do list para fazer verificação disso dos scripts já feitos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é possivel sim, talvez algo q ainda n seja mt explorado, mas é curioso ver que mts aplicações se encontram susceptiveis a estas falhas, um cenario possivel seria um site do genero "what is my useragent?" esse dito site, guarda estatisticas dos user ngents anteriores numa db, e nao tem qualquer tipo de parsing ou fitração, fazendo portanto com q seja possivel inserir codigo javascript ou html modificando o user-agent, pode ter implementado no index do site "last 10 useragents" e se 1 dos user-agents for codigo malicioso este vai ser executado. problemas com REFERER talvez se encontrem mais difundidos devido à quantidade de aplicações que tem os mesmos implementados para estatisticas, ou outros propositos like navigation behaviors e user tracking, existem descrições na wiki

Many web sites log referers as part of their attempt to track their users.

Most web log analysis software can process this information.

As referer information can violate privacy, some browsers allow the user to disable the sending of referer information.

podemos assumir portanto que existem falhas em web logs analysis q processam informação dos dados inseridos atraves da aplicação web e em aplicações web que não filtram os dados correctamente.

nunca me lembrei que pudessem atacar através do user-agent.

a falha em si n tem qualquer relação com o user-agent, mas sim com scripts em php, o user-agent é apenas um meio para atingir o fim, neste caso foi utilizado o /proc/self/environ mas por exemplo, tmb pode ser utilizado o error_log para inserir 1 shell que dps é interpretada pelo script em php.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda há pouco tempo descobri uma falha flagrante num plugin de estatísticas para o wordpress... o REFERER não era sanitized.... e dado que as estatisticas so podiam ser vistas pelo admin do blog, era só montar uma armadilha com XSS...

http://blog.rogeriopvl.com/archives/statpress-plugin-xss-vulnerability-disclosure

É possível que mais aplicações do género tenham esse problema, porque infelizmente muitos programadores acham que REFERER e UserAgent são inputs confiáveis pois é o browser que os envia.... só que por exemplo no caso do firefox basta uma extensão para qq utilizador mudar esses parametros facilmente.

Alguns programadores "contam" apenas com os 1ºs 30, 40 caracteres do user-agent, e validam por comparação a um array deles. Parece-me tornar o sistema mais seguro .. 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alguns programadores "contam" apenas com os 1ºs 30, 40 caracteres do user-agent, e validam por comparação a um array deles. Parece-me tornar o sistema mais seguro .. 

Tem piada... agora que falam nisso, reparo que em 12 anos que levo de programação web nunca usei o User-Agent. De tão pouco fiáveis que são esses dados, nunca encontrei utilidade para essa variável.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Alguns programadores "contam" apenas com os 1ºs 30, 40 caracteres do user-agent, e validam por comparação a um array deles. Parece-me tornar o sistema mais seguro ..

sim, esta situação ocorre na distribuição de malware em 2 casos, exclusão de browsers q a partida não estão vulneraveis e exclusão(atraves de REFERER) da visualização da pagina quando o visitante usa o google.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu afixei isto naquela esperança de que alguem me indicasse uma tecnologia realmente vulnerável a isto.

Pessoalmente não sei qual é o grande mambo-jambo sobre a segurança das aplicações web. Tipo, toda a data que vem do utilizador tem que ser saneada, o user agent, assim como TODO o outro conteudo de um pedido têm que ser saneados se forem usados para o que quer que seja.

Eu já usei o user agent e sempre o saneei antes de fazer o que quer que seja com ele. Da mesma forma que não mando conteudo para o utilizador sem o passar pelo htmlspecialchars() ou equivalente, nem mando dados para uma base de dados sem verificar que são realmente numéricos se disso se tratar ou sem escapar as aspas.

Para ser franco, quem não fizer isto está mesmo a pedi-las.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu sou um bocadinho como tu, se bem que pode sempre passar alguma coisa ao lado... O que quero dizer é que nunca me preocupei com segurança a esse ponto porque eu sou uma pessoa que faz tudo ao pormenor e acho que esse tipo de coisas que dizes são simplesmente bom senso e não propriamente prevenir contra males maiores.

Por exemplo, isso de verificar se uma variável é mesmo numérica se for esse o tipo de input esperado. Eu sempre fiz essa validação, mas nunca pensava nisso em termos de segurança da aplicação, apenas me parece o mais sensato a fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora