Определение локальных IP-адресов через WebRTC

в 19:01, , рубрики: javascript, nat, WebRTC, браузеры, информационная безопасность, метки: ,

Через WebRTC можно получить список всех локальных (находящихся за NAT) интерфейсов в системе.

Пример кода на JavaScript jsfiddle.net/GZurr

Работает только в браузерах поддерживающих WebRTC, на текущий момент это Firefox и Chrome.

Это можно использовать для получения более точного фингерпринта браузера или, например, разоблачения персонажей сидящих за VPN чтобы ВЫЧИСЛИТЬ ПО АЙПИ И НАБИТЬ Е**ЛЬНИК

Для удобства использования я изготовил js-сниффер, который можно вставить на страницу и удобно просматривать результат его работы: zhovner.com/jsdetector

Достаточно вставить на страницу код:

<script src="//zhovner.com/jsdetector.js?name=test"></script>

Где test нужно заменить на слово, по которому будет доступен результат работы сниффера zhovner.com/jsdetector/test


Из примечательного в скрипте определение адресов пользовательского резовлера.

Скрипт генерирует несколько рандомных поддоменов вида RANDOM.detect.zhovner.com и обращается к ним по HTTP.

Зона *.detect.zhovner.com делегирована wildcard-ом на NS-сервер которые логирует запросы резолверов, и при обращении к сайтам возвращает source адрес, с которого пришел резолвер.

Нужно иметь в виду, что SSL сертификат валидный только для корневого домена, но не для *.detect.zhovner.com, поэтому при встраивании скрипта на https-сайты, будет показано предупреждение о контенте загружаемом не по HTTPS.

Автор: zhovner

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js