El sábado por la noche, como siempre, me senté y olfateé el tráfico de mi teléfono. De repente, al abrir la aplicación Citimobil, vi que se estaba ejecutando una solicitud interesante sin ninguna autenticación.
Era una solicitud de información sobre los autos más cercanos. Habiendo cumplido esta solicitud varias veces con diferentes parámetros, me di cuenta de que puede descargar datos sobre los taxistas casi en tiempo real. ¡Solo imagina cuántas cosas interesantes puedes aprender ahora!

¿Cómo empezó todo?
Sí, realmente me senté y vi el tráfico desde el teléfono. El hecho es que soy ingeniero y estudio constantemente cómo funcionan las tecnologías y varias cosas a mi alrededor. Así fue esta vez.
Usé mitmproxy (Man In The Middle Proxy), un programa de ataque de hombre en el medio. Hay muchas instrucciones para instalarlo y configurarlo, y el principio general es el siguiente:
- Conéctese al WiFi de su hogar desde su teléfono y computadora
- Ejecute mitmproxy en la computadora
- En el teléfono, registra la dirección local de la computadora como el proxy principal (ya puede mirar dentro de http)
- Descargue y confirme el certificado en su teléfono (le permite mirar dentro de https)
Ahora, en términos generales, todo el tráfico del teléfono va primero a la computadora, se descifra, se muestra en la pantalla, se cifra y continúa. Y viceversa.
De esta manera, aprendo cómo se hacen las diferentes aplicaciones y, a veces, encuentro cosas muy interesantes. Por ejemplo, esta vez vi una solicitud de la aplicación Citimobil para obtener información sobre los controladores más cercanos, que no requería autenticación.
Bug bounty Mail.ru
Puse toda la información sobre hackerone y la envié para su revisión. Después de la
experiencia de interactuar con la recompensa de errores de Yandex, no conté con una respuesta rápida, pero después de 3 minutos alguien "3apa3a" cerró mi informe. Gran velocidad, Mail.ru!
En respuesta, escribieron que los datos se muestran al usuario en la aplicación, lo que significa que no son confidenciales y no hay necesidad de protegerlos.

Pues bien. Como se trata de datos públicos, ¡divirtámonos!
¿Cómo obtener datos?
Se puede obtener información sobre los 10 controladores más cercanos a la geolocalización enviando una solicitud POST a la siguiente dirección:
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.
?
, ! , .
!