
Так как Яндекс, по всей видимости, не собирается закрывать свой шпионский «баг», давайте тогда будем активно им пользоваться.
Возможность определения физического местоположения пользователя может быть ��орой весьма полезна, если вы сотрудник министерства правды, коллектор или просто криминальный элемент.
Для этого необходимо с помощью известной XSS или CSRF уязвимости в прошивке домашнего роутера (раз, два, три и др) определить MAC адрес маршрутизатора пользователя (он же и будет BSSID Wi-Fi сети). Если у вас есть прямой доступ к ПК пользователя, то достаточно просмотреть ARP кэш на ПК с помощью команды «arp -a». Обычно первой строчкой в кэше идет MAC адрес шлюза по-умолчанию, который и будет искомым BSSID.
Полученный BSSID можно вставить в запрос, который отсылает Яндекс.Метро:
curl
curl -i -s -k -X 'POST' \
-H 'User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.0.1; Nexus 5 Build/LRX22C)' -H 'Content-Type: application/x-www-form-urlencoded' \
'http://mobile.maps.yandex.net/cellid_location/?clid=1866854&lac=-1&cellid=-1&operatorid=null&countrycode=null&signalstrength=-1&wifinetworks=EE43F6D1B690:-65&app=ymetro'
-H 'User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.0.1; Nexus 5 Build/LRX22C)' -H 'Content-Type: application/x-www-form-urlencoded' \
'http://mobile.maps.yandex.net/cellid_location/?clid=1866854&lac=-1&cellid=-1&operatorid=null&countrycode=null&signalstrength=-1&wifinetworks=EE43F6D1B690:-65&app=ymetro'
После чего мы получим вот такой ответ:
В ответном пакете указаны координаты запрошенной wi-fi точки доступа, бережно собранные и сохранённые Яндексом. Можно вбить их в Google Maps и найти нужный вам дом. Координаты не всегда точные, но как отправная точка для поисков сгодятся.
Ещё одна любопытная особенность: в примере указан MAC адрес краснодарского маршрутизатора (~1500 км до метро). Надеюсь, это знак того, что у нас скоро появится подземка!