Nesta postagem eu vou estar falando um pouco sobre uma pequena ideia que eu tive durante o final de semana: analisar as avaliações de restaurantes/lanchonetes presentes no aplicativo do iFood para retirar informações de preferências de usuários sobre uma determinada região (latitude e longitude). A abordagem apresentada pode ser utilizada como um vetor de pesquisas durante uma atividade de levantamento de informações (OSINT).
Ambiente de Teste
O ambiente de testes foi composto por 3 elementos:
- iPhone 5S com aplicativo instalado
- VM Android (Genymotion) com aplicativo instalado.
- Kali Linux com Burp Proxy (interceptação e análise das requisições HTTP).
Requisições HTTP
O aplicativo realiza 3 requisições importantes para a pesquisa de locais.
- /ifood-ws-v3/address/locationsByLatLon: define a localização do usuário a partir de suas coordenadas (latitude e longitude). Este método do Web Service retorna uma variável "locationId" que será utilizada nas demais requisições (demonstrado na figura 01).
![]() |
Figura 01: Obtendo a localização do usuário |
- /ifood-ws-v3/restaurant/list: utiliza o parâmetro "locationId" para obter uma lista dos restaurantes/lanchonetes próximos ao usuário. Cada restaurante identificado na região do usuário apresenta um identificador único: "restaurantId" (demonstrado na figura 02).
![]() |
Figura 02: Obtendo lista de restaurantes |
- /ifood-ws-v3/restaurant/evaluations: retorna uma lista com as avaliações realizadas pelos usuários da aplicação para um determinado restaurante/lanchonete (demonstrado na figura 03).
![]() |
Figura 03: Obtendo lista de avaliações |
Prova de conceito (PoC)
Eu criei um script em Python para gerar as requisições HTTP e obter as avaliações de usuários sobre os restaurantes próximos a uma determinada localização (latitude e longitude). Estou utilizando a biblioteca NetworkX para gerar um grafo direcionado com todas as relações entre usuários e locais. A ferramenta Gephi esta sendo utilizada para visualizar o grafo gerado pelo script. O vídeo abaixo demonstra a execução do script.
Eu criei um script em Python para gerar as requisições HTTP e obter as avaliações de usuários sobre os restaurantes próximos a uma determinada localização (latitude e longitude). Estou utilizando a biblioteca NetworkX para gerar um grafo direcionado com todas as relações entre usuários e locais. A ferramenta Gephi esta sendo utilizada para visualizar o grafo gerado pelo script. O vídeo abaixo demonstra a execução do script.