⚠️ CRITICAL · CVSS 9.8 NBT Injection Object Substitution /guns bypass 1.21.1+

ОТЧЁТ ПО КРИТИЧЕСКОЙ УЯЗВИМОСТИ
СЕРВЕРА TOFFICRAFT

ОбъектПлагин /guns
ОбнаружилAbyss
ВекторNBT-инъекция + подмена ID

🔍 1. СУТЬ: NBT-ИНЪЕКЦИЯ И ПОДМЕНА ОБЪЕКТА

Плагин не проверяет item ID при чтении оружейных NBT-компонентов. Любой предмет с нужным custom_name и lore становится огнестрельным оружием — хоть конская броня, хоть цветок.

Почему это работает: Плагин ищет оружие по имени (display.Name), игнорируя реальный тип предмета. Это позволяет создавать «запретки» — неотличимый от мусора инвентарь с убойной силой.

📋 ПРИМЕР: КОНСКАЯ БРОНЯ → АК-47
{
  "components": { "minecraft:custom_name": "АК-47 ▪ «20»" },
  "id": "minecraft:iron_horse_armor"   // не оружие, но стреляет
}

♾️ 2. БЕСКОНЕЧНЫЕ ПАТРОНЫ И СБРОС КД

Удаление последней закрывающей скобки } в NBT ломает парсер плагина → переменные обнуляются, счётчик патронов не уменьшается, кулдаун исчезает.

📋 Пошаговый алгоритм эксплуатации:

  1. Получить предмет с оружейным NBT (через /give или подбор).
  2. В креативе навести курсор и нажать C + 1 — NBT скопируется в буфер.
  3. Вставить NBT в команду /give или редактор, удалить последнюю }.
  4. При ПКМ плагин падает при парсинге → бесконечный магазин + нет задержки («лазер»).
💥 БИТЫЙ NBT (БЕЗ ЗАКРЫВАЮЩЕЙ СКОБКИ)
// Некорректный NBT — нет закрывающей скобки
{components: {...}, count: 1, id: "minecraft:iron_horse_armor"
← плагин не может завершить чтение → infinite ammo, no cooldown

🏷️ 3. ПРИВЯЗКА К DISPLAY NAME

Переименование предмета на наковальне ломает эксплойт — плагин сверяет только custom_name, не анализируя структуру. Это подтверждает поверхностную валидацию.

💾 СОХРАНЕНИЕ ЧЕРЕЗ C + 1

В креативе (/gamemode creative) наведите на предмет и нажмите C + 1 — полный NBT скопируется. Вставьте во вкладку «Сохранённые предметы» (Saved Hotbars) для многократного использования и передачи другим игрокам.

📟 КОМАНДЫ ВЫДАЧИ «ЗАПРЕТОК»

🔫 АК-47 НА НЕЗЕРИТОВОМ ТОПОРЕ
/give @p minecraft:netherite_axe[minecraft:custom_name={extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" АК-47",underlined:0b},{color:"yellow",italic:0b,text:" ▪ «20»"}],text:""},minecraft:lore=[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Полностью автоматический с высокой точностью",underlined:0b}],text:""},{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Эффективен в среднем бою ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}]]
🌸 ЦВЕТОК КАК ОРУЖИЕ (ДОКАЗАТЕЛЬСТВО ПОДМЕНЫ)
/give @p minecraft:dandelion[minecraft:custom_name='{"text":" АК-47 ▪ «20»"}',minecraft:lore=['{"text":"бесконечный магазин"}']]

📦 ШАЛКЕР С НАБОРОМ «ЗАПРЕТОК» (1.21.1+)

Полный шалкер с несколькими видами оружия, включая варианты с бесконечными патронами (счётчик «100»). Предметы замаскированы под netherite_sword.

Олимпия (1) Олимпия (100) АК-47 (20) АК-47 (100) Карабин (8) Карабин (100) Охотничье (0) Охотничье (100) Орёл тоффи (7|7) Орёл тоффи (100|100) Базука (1) Базука (100)
📦 /GIVE ШАЛКЕР С ПОЛНЫМ НАБОРОМ (СКОПИРОВАТЬ ВСЮ КОМАНДУ)
/give @p minecraft:shulker_box[minecraft:container=[{slot:0,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Олимпия",underlined:0b},{color:"yellow",italic:0b,text:" ▪ «1»"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Смертельно опасна на больших расстояниях",underlined:0b}],text:""},{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Зажигательные боеприпасы ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1}}}},{slot:1,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Олимпия",underlined:0b},{color:"yellow",italic:0b,text:" ▪ «100"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Смертельно опасна на больших расстояниях",underlined:0b}],text:""},{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Зажигательные боеприпасы ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1},"minecraft:repair_cost":1}}},{slot:3,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" АК-47",underlined:0b},{color:"yellow",italic:0b,text:" ▪ «20»"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Полностью автоматический с высокой точностью",underlined:0b}],text:""},{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Эффективен в среднем бою ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1},"minecraft:repair_cost":1}}},{slot:4,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" АК-47",underlined:0b},{color:"yellow",italic:0b,text:" ▪ «100"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Полностью автоматический с высокой точностью",underlined:0b}],text:""},{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Эффективен в среднем бою ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1},"minecraft:repair_cost":1}}},{slot:6,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Карабин",underlined:0b},{color:"yellow",italic:0b,text:" ▪ «8 ◀▷ ×»"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Дает криты с вероятностью 10% а переключение пкм    ",underlined:0b}],text:""},{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" делает карабин в гранатамёт ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1},"minecraft:repair_cost":1}}},{slot:7,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Карабин",underlined:0b},{color:"yellow",italic:0b,text:" ▪ «100 ◀▷ ×"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Дает криты с вероятностью 10% а переключение пкм    ",underlined:0b}],text:""},{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" делает карабин в гранатамёт ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1},"minecraft:repair_cost":1}}},{slot:18,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Охотничье ружье",underlined:0b},{color:"yellow",italic:0b,text:" ▫ «0»"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Оснощен прицелом ночного виденья",underlined:0b}],text:""},{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Двойной урон при хэдшоте ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1},"minecraft:repair_cost":1}}},{slot:19,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Охотничье ружье",underlined:0b},{color:"yellow",italic:0b,text:" ▫ «100"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Оснощен прицелом ночного виденья",underlined:0b}],text:""},{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Двойной урон при хэдшоте ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1},"minecraft:repair_cost":1}}},{slot:21,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Орёл тоффи",underlined:0b},{color:"yellow",italic:0b,text:" «7 | 7»"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Можно стрелять левой и правой кнопкой мыши",underlined:0b}],text:""},{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Стреляя в спину, бонусный урон ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1},"minecraft:repair_cost":1}}},{slot:22,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Орёл тоффи",underlined:0b},{color:"yellow",italic:0b,text:" «100 | 100"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Можно стрелять левой и правой кнопкой мыши",underlined:0b}],text:""},{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Стреляя в спину, бонусный урон ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1},"minecraft:repair_cost":1}}},{slot:24,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Базука",underlined:0b},{color:"yellow",italic:0b,text:" «1»"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Огневые шары при выстреле ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1},"minecraft:repair_cost":1}}},{slot:25,item:{id:"minecraft:netherite_sword",count:1,components:{"minecraft:custom_name":{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Базука",underlined:0b},{color:"yellow",italic:0b,text:" «100"}],text:""},"minecraft:lore":[{extra:[{bold:0b,color:"yellow",italic:0b,obfuscated:0b,strikethrough:0b,text:" Огневые шары при выстреле ",underlined:0b},{bold:0b,color:"yellow",italic:1b,obfuscated:0b,strikethrough:0b,text:"( перезарядка нажав Q )    ",underlined:0b}],text:""}],"minecraft:enchantments":{"minecraft:vanishing_curse":1},"minecraft:repair_cost":1}}}]]

💡 Предметы со счётчиком «100» — бесконечные патроны. Остальные слоты заполнены декоративными панелями white_stained_glass_pane.

🛡️ РЕКОМЕНДАЦИИ ПО ИСПРАВЛЕНИЮ:
• Внедрить белый список разрешённых item ID для оружия.
• Валидировать целостность NBT перед десериализацией; при битой структуре — игнорировать.
• Не полагаться исключительно на custom_name для идентификации.