No sábado à noite, como sempre, sentei e cheirei o tráfego do meu telefone. De repente, ao abrir o aplicativo Citimobil, vi que uma solicitação interessante estava sendo executada sem autenticação.
Foi um pedido de informações sobre os carros mais próximos. Tendo cumprido esse pedido várias vezes com parâmetros diferentes, percebi que você pode descarregar dados sobre taxistas quase em tempo real. Imagine quantas coisas interessantes você pode aprender agora!

Como tudo começou?
Sim, eu realmente sentei e assisti o tráfego do telefone. O fato é que sou engenheiro e estudo constantemente como as tecnologias e várias coisas ao meu redor funcionam. Então foi dessa vez.
Eu usei o
mitmproxy (Man In The Middle Proxy), um homem no programa de ataque do meio. Há muitas instruções para instalá-lo e configurá-lo, e o princípio geral é este:
- Conecte-se ao WiFi doméstico do seu telefone e computador
- Execute mitmproxy no computador
- No telefone, você registra o endereço local do computador como proxy principal (você já pode procurar dentro de http)
- Faça o download e confirme o certificado no seu telefone (permite procurar dentro de https)
Agora, grosso modo, todo o tráfego do telefone vai primeiro para o computador, é descriptografado, exibido na tela, criptografado e continua. E vice-versa.
Dessa maneira, aprendo como diferentes aplicativos são feitos e, às vezes, acho coisas muito interessantes. Por exemplo, desta vez, vi um pedido do aplicativo Citimobil para obter informações sobre os drivers mais próximos, que não exigiam autenticação.
Bug bounty Mail.ru
Coloquei todas as informações no hackerone e as enviei para revisão. Após a
experiência de interagir com a recompensa de bug do Yandex, não contei com uma resposta rápida, mas após 3 minutos alguém “3apa3a” encerrou meu relatório. Grande velocidade, Mail.ru!
Em resposta, eles escreveram que os dados são mostrados ao usuário no aplicativo, o que significa que eles não são confidenciais e não há necessidade de protegê-los.

Bem então. Como se trata de dados públicos, vamos nos divertir!
Como obter dados?
Informações sobre os 10 drivers mais próximos à geolocalização podem ser obtidas enviando uma solicitação POST para o seguinte endereço:
https://c-api.city-mobil.ru/getdrivers
- :
{
"latitude": LAT,
"longitude": LON,
"limit": 10,
"method": "getdrivers",
"radius": 5,
"tariff_group": [ 4, 5, 6 ],
"ver": "4.33.0"
}
tariff_group — . , , , ..
radius limit , , .
, :
curl -X POST --data '{ "latitude": 55.7, "limit": 10, "longitude": 37.6, "method": "getdrivers", "radius": 5, "tariff_group": [4], "ver": "4.33.0" }' https://c-api.city-mobil.ru/getdrivers
JSON 10 (LAT, LON) :
{
"drivers":[
{
"id":"1c1f6779f893af6fe5bf4509af7366cd",
"lt":"55.7025061",
"ln":"37.5954334",
"direction":"3",
"CarColorCode":"000000",
"car_type":"comfort_plus"
},
{
"id":"1a13d0daad9b6a3fa2b3d04a5b6f8c2a",
"lt":"55.7019682",
"ln":"37.6054896",
"direction":"3",
"CarColorCode":"000000",
"car_type":"comfort"
},
{
"id":"c7c1634fae41a68924083af1d496d0a7",
"lt":"55.7014223",
"ln":"37.6067352",
"direction":"3",
"CarColorCode":"000000",
"car_type":"comfort_plus"
},
{
"id":"f15ce054ccdaa268b16a0904b9eecdae",
"lt":"55.6956527",
"ln":"37.5972063",
"direction":"4",
"CarColorCode":"000000",
"car_type":"sedan"
},
{
"id":"94ebc0fcc644bb1da4b57e7d23942e6d",
"lt":"55.694786",
"ln":"37.5982642",
"direction":"4",
"CarColorCode":"000000",
"car_type":"sedan"
},
{
"id":"7251c45ee945c9cb839d69d5902b9f17",
"lt":"55.7009351",
"ln":"37.6094206",
"direction":"3",
"CarColorCode":"000000",
"car_type":"comfort"
},
{
"id":"cb9dab2ba7379c3db817dd76ec68e6c5",
"lt":"55.6950137",
"ln":"37.6041883",
"direction":"8",
"CarColorCode":"000000",
"car_type":"sedan"
},
{
"id":"761891d9c1129b1678c3eba616249e2b",
"lt":"55.6944542",
"ln":"37.5951122",
"direction":"2",
"CarColorCode":"000000",
"car_type":"sedan"
},
{
"id":"4f0e835751cadaa5d5386f0e1374f315",
"lt":"55.7066516",
"ln":"37.6011767",
"direction":"7",
"CarColorCode":"000000",
"car_type":"sedan"
},
{
"id":"2eb330cad5e5d9c87e6d0600a9ff10e8",
"lt":"55.7066801",
"ln":"37.6009127",
"direction":"8",
"CarColorCode":"000000",
"car_type":"comfort"
}
],
"nearest":{
"duration":420
},
"service_status":1
}
,
{
"id":"2eb330cad5e5d9c87e6d0600a9ff10e8",
"lt":"55.7066801",
"ln":"37.6009127",
"direction":"8",
"CarColorCode":"000000",
"car_type":"comfort"
}
, , , (-), . !
!
, 10 , N , N .
. , , , . , — mail.ru ip.
«», . .
, ?
11
4374? .

. ?
- .
, . .
?
, .
-, «».
-, (, .) . , . , , .
-, , . . ,
, «», , ., .
Mail.ru , , ., . .
Mail.ru , , bug bounty.
?
, ! , .
!