- Вступ
- білий список
- опис уразливості
- експлуатуємо вразливість
- Захист від вразливості
- Приклади експлуатації уразливості
У даній статті ми докладно розглянемо уразливість, за допомогою якої можна робити заміну будь-яких «захищених» sv_pure 1 текстур.
Вступ
Як відомо, існують так звані «легальні чіти», які включають в себе моделі, видимі через стіни, прозорі текстури і т.д. Легальними дані чіти називаються через те, що за їх використання гравець не може бути забанений системою VAC, тому вони досить популярні серед нечесних гравців усіх рівнів.
Для захисту від подібного застосовується штатна функція sv_pure. На більшості серверів вона встановлена в значення 1, тобто заборонено все, крім файлів з білого списку. Нестандартні текстури і моделі можуть бути завантажені на клієнті тільки якщо вони розташовані в каталозі з білого списку.
білий список
Розглянемо білий список ігор Team Fortress 2 і Counter-Strike: Source за замовчуванням:
whitelist {// // Allow custom player models. // models \ player \ ... any materials \ models \ player \ ... any // // Allow custom spray decals. // materials \ temp \ ... any materials \ vgui \ logos \ ... any materials \ vgui \ logos \ ui \ ... any}
Перші два рядки вже самі по собі є проломом, тому що дозволяють замінити моделі гравців обох команд на видимі через стіни, тому більшість ігрових адміністраторів їх прибирають. Нас же цікавлять залишилися.
опис уразливості
Сама вразливість полягає в тому, що гра на движку Source при підключенні до сервера перевіряє тільки файли моделей / текстур на наявність їх в білому списку. Маніфести при цьому можна змінювати як і скільки завгодно без будь-яких наслідків.
експлуатуємо вразливість
Виконаємо наступні кроки строго по порядку:
- створимо каталоги / tf / custom / exp_test / materials / temp /, / tf / custom / exp_test / materials / models /;
- перейдемо в каталог / tf / custom / exp_test / materials / models / і скопіюємо туди * .vmt файли (маніфести) потрібних текстур / моделей;
- в / tf / custom / exp_test / materials / temp / помістимо змінені файли текстур;
- відкриємо маніфест і змінимо значення змінної $ basetexture так, щоб воно вказувало на наш замінений файл текстури всередині temp. Збережемо зміни;
- повторюємо кроки потрібне число раз.
Захист від вразливості
В даний час єдиною можливістю захиститися від гравців з текстурами, видимими через стіни, можна тільки за допомогою установки на сервері sv_pure 2. Це заблокує будь-які нестандартні моделі і текстури з повною перевіркою контрольних сум.
Увага! При використанні sv_pure 2 перестануть працювати будь-які нестандартні звуки, моделі, текстури (якщо вони є на сервері), а також спреї гравців.
Уразливість вже активно експлуатується гравцями, тому що існує готовий експлойт-пак на неї. Я зі зрозумілих причин не буду викладати посилання на нього тут.
Приклади експлуатації уразливості
Скріншоти зроблені користувачем _w0lf на сервері з sv_pure 1 і взяті з його сторінки:
Карта pl_badwater, респаун Червоних Карта pl_badwater, респаун Синіх