Вопрос Что может сделать игрок1 если у него есть уникальный айди UUID игрок2?

kashalot

Разработчик
Пользователь
Сообщения
70
Решения
2
Веб-сайт
kashalot.carrd.co
Что может сделать игрок1 если у него есть UUID другого игрока(ов)?
Чего стоит бояться если другой игрок заполучит эту информацию?
 
Что может сделать игрок1 если у него есть UUID другого игрока(ов)?
Чего стоит бояться если другой игрок заполучит эту информацию?
Эта информация бесполезна
Я скажу больше. Ты можешь сам узнать uid любого лицензионного игрока через mojang-api
 
Это я знаю, а на оффлайн серверах?
Начнём с того, что на оффлайн серверах UUID генерируется по никнейму. То есть, зная никнейм ты уже можешь вычислить UUID

Java:
UUID.nameUUIDFromBytes("OfflinePlayer:<player_name>".getBytes(StandardCharsets.UTF_8));

Где <player_name> это никнейм игрока

 
Если узнает то ничего страшного, а вот если сможет подменить то это страшно уже, но плагин авторизации по идее должен защитить от такого
Это должна делать правильная настройка фаервола ну или BungeeGuard


А так, подпишусь под всеми ответами, UUID это информация открытая и никакой угрозы не несёт, главное BungeeGuard иметь, если BungeeCord используете
 
То есть системный файрволл (UFW, firewalld, iptables) должен это делать? Или вы имеете ввиду Velocity?
Подмена UUID производится так:

  • Есть сервера, которые связаны банжикордом
  • Эти сервера требует подключения с банжикорда (bungeecord: true у них стоит). Если подключиться не через банжикорд, а напрямую, кикнет с ошибкой
  • Но эта проверка проверяет, подключаешься ли ты с ЛЮБОГО банжикорда, необязательно того самого. То есть можно локально развернуть банжикорд и уже с него подключиться к нужному спигот серверу
  • Спигот сервер получает UUID от банжикорда. То есть твой локальный банжикорд способен отправить тебя на сервер вместе с чужим UUID и спигот сервер ничего не заподозрит

У этого есть решения:
  • Использовать файрволл, который запретит доступ к спигот серверам напрямую, просто будет дропать пакеты извне на те порты
  • Заставить спигот сервер проверять, что игрок заходит с того самого банжикорда, не с чужого (поставить BungeeGuard или использовать Velocity)

Других способов подмены UUID не существует. Вся эта проблема это исключительно уязвимость BungeeCord, потому что они в те далёкие времена не придумали интегрировать механизм по типу BungeeGuard напрямую в прокси, а просто давали туториалы по настройке файрволла, которым следовали не все - а без файрволла вот такая вот уязвимость открывается
 
Последнее редактирование:
Подмена UUID производится так:

  • Есть сервера, которые связаны банжикордом
  • Эти сервера требует подключения с банжикорда (bungeecord: true у них стоит). Если подключиться не через банжикорд, а напрямую, кикнет с ошибкой
  • Но эта проверка проверяет, подключаешься ли ты с ЛЮБОГО банжикорда, необязательно того самого. То есть можно локально развернуть банжикорд и уже с него подключиться к нужному спигот серверу
  • Спигот сервер получает UUID от банжикорда. То есть твой локальный банжикорд способен отправить тебя на сервер вместе с чужим UUID и спигот сервер ничего не заподозрит

У этого есть решения:
  • Использовать файрволл, который запретит доступ к спигот серверам напрямую, просто будет дропать пакеты извне на те порты
  • Заставить спигот сервер проверять, что игрок заходит с того самого банжикорда, не с чужого (поставить BungeeGuard или использовать Velocity)
ну я просто думал что подмена ююид и на велосити работает, но мне в дс элитриума потом объяснили что велосити сам генерирует ююид и игнорирует что отправит клиент
 
ну я просто думал что подмена ююид и на велосити работает, но мне в дс элитриума потом объяснили что велосити сам генерирует ююид и игнорирует что отправит клиент
Клиент не отправляет UUID, это делает сам прокси (банжа или велосити). Уязвимость, как я и говорил, заключалась в подключении со своей собственной банжи
 
Назад
Сверху Снизу