Недавно я обнаружил баг в AMX Mod X 1.76. Суть заключается в том, что мы можем зайти под ником админа, даже не зная пароля и нас не удалит с сервера. Как он работает? В admin.sma есть команда amxauthXXXX, где XXXX - четыре английский буквы, которые формируются случайным образом, используется она для того, чтобы кикнуть игрока с сервера при неверном пароле. Заходим на сервер с AMXX. Узнаем любой ник или тег, на который в user.ini стоит пароль, меняем свое имя на запароленное. В результате нас кикнет с сервера с ошибкой "You have no entry to the server...". Все правильно, так как мы не знаем пароль, поэтому не можем под данным ником играть. Но в консоле мы можем видеть следующее: * Invalid Password!
Unknown command: amxauthQXAD
Kicked by Console: "You have no entry to the server..."
Kicked :"You have no entry to the server..."
Самое важное здесь то, что команда amxauthQXAD, засветила свои четыре случайные буквы, они могут быть везде разные и меняются при смене карты. Теперь пишем в консоле команду: alias "amxauthQXAD" ""
Затем снова заходим на сервер с ником, на который стоит якобы пароль. В результате нас не кикнуло и мы спокойно играем, потому что действие команды amxauthQXAD было изменено. Я уже сообщил об этом баге разработчикам здесь. Также они ответили, что данный баг пофиксили в новой версии AMX Mod X 1.8.
Как закрыть данный баг на своем AMXX, до выхода версии 1.8:
1. Откройте исходники admin.sma. Обычно файл находится в директории cstrike/addons/amxmodx/scripting.
2. Найдите в нем следующий код:
server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "NO_ENTRY")
3. Замените его на:
server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "NO_ENTRY")
return PLUGIN_HANDLED
4. Сохраните файл и скомпилируйте его заново, запустив compile.exe.
5. Скопируйте новый файл admin.amxx из папки compiled себе на сервер в папку plugins