Перейти к публикации
Andrey

Уязвимость в BuildCraft (PacketHack)

Рекомендованные сообщения

Andrey

image.jpeg

Любители эксплуатировать уязвимости модификаций Minecraft решили в очередной раз зайти к нам «в гости». Им конечно же был дан отпор, так что всё в порядке 😎

RedServer имеет достаточно большой опыт борьбы с такими вредителями, поэтому наш сервер можно считать одним из самых надёжных. Обладая всем этим, мы решили взять на себя миссию раскрывать и публиковать информацию об уязвимостях, чтобы так называемые «рейды» по серверам прекратились.

 

Почему мы не ищем уязвимости сами?
Знаете, копаться в запутанном коде модификаций, дело неинтересное. Вероятность найти дыру в моде достаточно мала, ибо её просто может не быть (хороший мод). Поэтому зачем искать дыры в модах, когда есть те, кто за тебя их найдёт? Достаточно дождаться их визита и отследить, как они это делают 👽

 

Уязвимость BuildCraft

Была зафиксирована выдача произвольных вещей с использованием строительной метки. Отправляя специальный пакет, злоумышленник записывал в метку произвольный предмет, а затем его забирал.

image.jpeg

А вот как это работает (информация для разработчиков).

[WARN] [FML/]: Created item via packet: ExtrabiomesXL:flower3:13
java.lang.Exception
	at net.minecraft.item.ItemStack.<init>(ItemStack.java:102) ~[add.class:?]
	at buildcraft.core.lib.utils.NetworkUtils.readStack(NetworkUtils.java:95) ~[NetworkUtils.class:?]
	at buildcraft.builders.TileConstructionMarker.readData(TileConstructionMarker.java:259) ~[TileConstructionMarker.class:?]
	at buildcraft.core.lib.network.PacketHandler.onTileUpdate(PacketHandler.java:47) ~[PacketHandler.class:?]
	at buildcraft.core.lib.network.PacketHandler.channelRead0(PacketHandler.java:74) ~[PacketHandler.class:?]
	at buildcraft.core.network.PacketHandlerCore.channelRead0(PacketHandlerCore.java:23) ~[PacketHandlerCore.class:?]
	at buildcraft.core.network.PacketHandlerCore.channelRead0(PacketHandlerCore.java:20) ~[PacketHandlerCore.class:?]
	at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:290) ~[ej.class:?]
	at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:171) ~[nc.class:?]
	at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:949) ~[MinecraftServer.class:?]
	at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:385) ~[lt.class:?]
	at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:827) ~[MinecraftServer.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:702) ~[MinecraftServer.class:?]

На текущий момент обработчик пакетов был выключен (вы будете получать сообщение об ошибке), до тех пор пока мы не сделаем полноценный фикс.

 

Фикс
Тестирование показало, что пакеты TILE_UPDATE, ENTITY_UPDATE, STATE_UPDATE предназначены только для клиента (обновление блоков в клиентском мире). Уязвимость заключается в наличии возможности двунаправленной отправки этих пакетов – отсутствует проверка принимающей стороны (сервер/клиент). Для исправления уязвимости, следует запретить обработку данных пакетов сервером (только клиент должен их принимать и обрабатывать).

Изменено пользователем TheAndrey
Обновлено. Добавлена информация о способе исправления.
  • Нравится 5

Зачем мне подпись?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DjBind

Нужно ли иметь овер 1000iq чтобы находить такие "фичи"?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lucius_Wrath
6 часов назад, TheAndrey сказал:

Почему мы не ищем уязвимости сами?
Знаете, копаться в запутанном коде модификаций, дело неинтересное. Вероятность найти дыру в моде достаточно мала, ибо её просто может не быть (хороший мод). Поэтому зачем искать дыры в модах, когда есть те, кто за тебя их найдёт? Достаточно дождаться их визита и отследить, как они это делают 👽

 

3 часа назад, DjBind сказал:

Нужно ли иметь овер 1000iq чтобы находить такие "фичи"?

 

 вопросы есть?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Chaon1x

Я тут понял, что ничего не понял....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Voimax

Идти на другие проекты тестить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
FlensT
07.03.2019 в 04:40, DjBind сказал:

Нужно ли иметь овер 1000iq чтобы находить такие "фичи"?

 

1 год уже прошёл, как я обнаружил баг с бесконечной энергией и его до сих пор не фиксанули. Смысл искать если всё равно не фиксят. Может хоть это сообщение привлечёт внимание Андрея.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
makatymba2001

Чтобы оно привлекло внимание, надо его звать, а не ждать у моря погоды. Либо в личку ему детально расспиши суть дюпа энергии.@TheAndrey


mak2_4.png.638c2a45f439315e21d4b3a38c2d49bc.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
FlensT
09.03.2019 в 09:16, makatymba2001 сказал:

Чтобы оно привлекло внимание, надо его звать, а не ждать у моря погоды. Либо в личку ему детально расспиши суть дюпа энергии.@TheAndrey

Оно висит в баг трекере год, имеет много просмотров от модерации, снят видос и прикреплен к теме, я поднимал эту тему путем написания в ней. Вопросы остались?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Andrey

@FlensT в игре и модах тысячи ошибок. Мне уже крайне надоело этим заниматься. На исправление одной уходит несколько часов (найти причину; придумать решение; протестировать фикс). Вообще, это должны исправлять авторы творений. Поэтому я уже стал «забивать» на всякие там пустяки, с которыми вполне можно жить.

Есть приоритеты. Уязвимости, краши, универсальные дюпы имеют высокий приоритет и исправляются быстро, а всё остальное - пустяк, исправляется по мере моего желания или никогда. В баг-трекере висит уже десяток подобных тем с пустяками. Если оно так вам надо, исправляйте сами – мне останется только установить фикс.


Зачем мне подпись?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...