Agência Nacional do Petróleo (ANP) e o mundo bugado


Após duas semanas revoltado com o alto preços dos combustíveis, decidi na madrugada do dia 05/04 fazer um post no twitter e identi.ca mostrando como foi abusivo o aumento do etanol (álcool) aqui em Brasília, que passou de R$ 2,02 para R$ 2,83.

Combustível Caro

Comentando com o Thiago Silva, ele falou que existia um sistema onde era possível visualizar os preços dos combustíveis em todo o Brasil. Acessamos o site da ANP e realmente o sistema possuía os preços atualizados por cidades e períodos. Observei que o formulário de pesquisa usava o método POST e não gerava uma URL amigável impossibilitando que eu mostrasse como estava caro os preços em Brasília. Como tenho conhecimento em HTML, comecei a ler o código do formulário para tentar gerar uma URL via método GET para conseguir publicar o link sobre o preço dos combustíveis em Brasília, para que outras pessoas acessassem diretamente a tabela de preços ao invés de preencher o formulário.

Acabei descobrindo que os campos “hidden“, como por exemplo, o campo “selMunicipio” estava preenchido assim “1778*BRASILIA” e o campo “selSemana” estava “615*De 27/03/2011 a 02/04/2011“. Percebendo isso, minha primeira reação foi tentar alterar o campo “selMunicipio” de “1778*BRASILIA” para “1778*A“, e não é que apareceu escrito “A” ao invés de “BRASILIA“, lá no site da ANP?! Mudei o “selMunicipio” para “1778*BRASILIA A CIDADE SEM LEI” e o “selSemana” para “615*De 27/03/2011 a 02/04/2011~INFINITO E ALEM” e publiquei a URL modificada aqui [1] e aqui [2].

Fiz mais um teste tentando colocar código HTML junto ao texto na URL e também funcionou. Ooooops ficou mais sério a falha de segurança.

Em paralelo aos testes, estava acontecendo muita conversa sobre os preços altos dos combustíveis e muita gente estava usando a hashtag combustivelmaisbaratoja.

Tive a ideia de fazer um abaixo-assinado e contribuir no assunto. Pensei em alguns métodos de como inserí-lo dentro da página da ANP, uma vez que eu consigo inserir código HTML na URL. Alguns minutos conversando com o Thiago, tive a ideia de usar um iframe. Comecei a desenvolver o formulário usando python-pesto, python-sqlalchemy e em alguns minutos depois estava pronto. Discutimos sobre onde hospedar e quais seriam as implicações. Decidimos hospedar o formulário no nosso próprio domínio mundobugado.org, numa forma de assumir, porque a nossa intenção era também demonstrar a falha no site e não só protestar.

Publiquei [1] e [2] a URL com o iframe e várias pessoas repassaram o link.

http://www.anp.gov.br/preco/prc/Resumo_Por_Municipio_Posto.asp?Tipo=2&cod_Semana=615&desc_Semana=A&selCombustivel=643*A&selMunicipio=1778*BRASILIA%20A%20CIDADE%20SEM%20LEI&selSemana=615*De%2027/03/2011%20a%2002/04/2011~INFINITO%20E%20ALEM%3Ciframe%20src=%27http://mundobugado.org/anp%27%20height=%27500%27%20width=%27500%27%3E%3C/iframe%3E%3C!--

imagem via yaso:

Imagem do site com a URL modificada

No dia seguinte, dia 06/04, a ANP retirou o Sistema de Pesquisa de Preços do ar. Procurei saber o motivo, se era por nossa causa, e era. No microblog tinha o seguinte alerta:

Imagem do site com a URL modificada

Um alerta mentiroso, uma vez que usamos a própria URL do site da ANP e não algo como “anp.com.br” ou “anp.net”, etc. (Um dúvida minha, qual é a relação entre formulário falso e o sistema estar em manutenção?! Pura desculpa para uma falha deles?!). Algum tempo depois, vários sites replicaram o alerta [1], [2], [3], [4].

Olhei alguns códigos do site da ANP e encontrei outras brechas [1] e [2]. Agora, não só o Sistema de Pesquisa de Preços estava com a falha, mas a maior parte dos formulários do site, incluindo a busca principal. ANP, agora vocês vão retirar o site todo do ar? E vão usar o que como desculpa pela mal programação?!

Imagem do site com a URL modificada

Optei agora por não espalhar a URL com o iframe e avisei [1] e [2] a ANP sobre as falhas, mas até agora não recebi uma resposta.

O lado negativo de tudo isso, é que uma falha boba, de fácil solução, deixou o sistema 24h ~ ao infinito e além fora do ar. Me deixando com a pulga atrás da orelha, pensando que mesmo que a TI da ANP demore pra corrigir a falha, o lado político de deixar o sistema fora do ar nesse momento de grande procura dos dados. Uma pena…

Espero ter esclarecido o que aconteceu. Happy hack!

ATUALIZAÇÂO: 08/04/2011 18h20

O Sistema de Pesquisa de Preços esta no ar novamente e parece corrigido. Mas reparei que a busca do site sumiu, que foi o meu outro bug report. Será que a ANP vai fazer uma nota sobre o assunto?!

ATUALIZAÇÂO: 08/04/2011 20h52

A busca no site da ANP ainda não voltou =/ Mas sexta-feira, numa hora dessas, deve ficar o fim de semana todo sem a busca. Espero que corrijam todas as falhas do mesmo tipo que levantei sobre HTML Injection e não só os dois formulários bugados que citei nesse “artigo”. Para isso, tenho mais um formulário bugado para testar, agora é esperar pra ver.

ATUALIZAÇÂO: 11/04/2011 22h18

Olhei de manhã, de tarde, mas agora a busca no site ANP está de volta e corrigida. Mas, e as outras falhas, quando serão corrigidas?!

ATUALIZAÇÂO: 11/12/2016

Esse post resultou em uma busca e apreensão, e também muito dinheiro público gasto em vão. Explico melhor aqui: Mundo Bugado, ANP, MP, PF e a INTERPOL

Previous

JuntaDados e o Hall da vergonha

Next

Composição dos preços dos combustíveis: qual é a verdade?

1 Comment

  1. Bom, apenas para relatar, na esperança de que seja útil: ocorreu comigo de encontrar uma brecha em um sistema web, onde o acesso administrativo é validado via javascript no lado do cliente; rapidamente entrei em contato com o proprietário da empresa, para dizer que o site dele estava com erros simples de programação, inclusive passei para ele o ip que eu havia utilizado para fazer os testes, e nada, nao obtive resposta. Um tempo depois ele, em uma situação não corelata e desvantajosa para ele, usou o argumento de que eu havia “invadido” (no sentido mais malicioso e vil que o senso comum pode dar a este termo) o site e que ele podia “provar”.

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Powered by WordPress & Theme by Anders Norén