nikitin2016
Участник
- Сообщения
- 228
- Реакции
- 12
Здравствуйте, коллеги админы ферм, вопрос следующего характера : периодически в моей ферме перестает начисляться серебро при пополнении пользователями с пеера, и в лог файлах замечаю как некоторые челы лезут в мерчант и папку js, то есть пытаются ломать игру . подскажите плиз кто с таким сталкивался и где искать уязвимость, чтобы это предотвратить .
прилагаю скрин , помогите разобраться пожалуйста, куда именно лезут и что там меняют после чего начисления серебра не происходит
прилагаю скрин , помогите разобраться пожалуйста, куда именно лезут и что там меняют после чего начисления серебра не происходит

nikitin2016
Участник
- Сообщения
- 228
- Реакции
- 12
мой файл : payeer_merchant.php , может в нём что не так подскажите пожалуйста ?kvozimir написал(а):я вижу ошибку,но не уязвимость,дело в мерчанте видимо код кривоват
<?PHP
# Автоподгрузка классов
function __autoload($name){ include("classes/_class.".$name.".php");}
# Подгрузка JavaScripts
include 'js/lic.php';
# Класс конфига
$config = new config;
# Функции
$func = new func;
# База данных
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);
if (isset($_POST["m_operation_id"]) && isset($_POST["m_sign"]))
{
$m_key = $config->secretW;
$arHash = array($_POST['m_operation_id'],
$_POST['m_operation_ps'],
$_POST['m_operation_date'],
$_POST['m_operation_pay_date'],
$_POST['m_shop'],
$_POST['m_orderid'],
$_POST['m_amount'],
$_POST['m_curr'],
$_POST['m_desc'],
$_POST['m_status'],
$m_key);
$sign_hash = strtoupper(hash('sha256', implode(":", $arHash)));
if ($_POST["m_sign"] == $sign_hash && $_POST['m_status'] == "success")
{
$db->Query("SELECT * FROM db_payeer_insert WHERE id = '".intval($_POST['m_orderid'])."'");
if($db->NumRows() == 0){ echo $_POST['m_orderid']."|error"; exit;}
$payeer_row = $db->FetchArray();
if($payeer_row["status"] > 0){ echo $_POST['m_orderid']."|success"; exit;}
$db->Query("UPDATE db_payeer_insert SET status = '1' WHERE id = '".intval($_POST['m_orderid'])."'");
$ik_payment_amount = $payeer_row["sum"];
$user_id = $payeer_row["user_id"];
# Настройки
$db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
$sonfig_site = $db->FetchArray();
$db->Query("SELECT user, referer_id FROM db_users_a WHERE id = '{$user_id}' LIMIT 1");
$user_ardata = $db->FetchArray();
$user_name = $user_ardata["user"];
$refid = $user_ardata["referer_id"];
# Зачисляем баланс
$serebro = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );
$db->Query("SELECT insert_sum FROM db_users_b WHERE id = '{$user_id}' LIMIT 1");
$ins_sum = $db->FetchRow();
$serebro = intval($ins_sum <= 0.01) ? $serebro*1 : $serebro*1;
$add_tree = ( $ik_payment_amount >= 499.99) ? 1 : 0;
$lsb = time();
$to_referer = ($serebro * 0.20);
$db->Query("UPDATE db_users_b SET money_b = money_b + '$serebro', e_t = e_t + '$add_tree', to_referer = to_referer + '$to_referer', last_sbor = '$lsb', insert_sum = insert_sum + '$ik_payment_amount' WHERE id = '{$user_id}'");
# Зачисляем средства рефереру и дерево
$add_tree_referer = ($ins_sum <= 0.01) ? ", a_t = a_t" : "";
$db->Query("UPDATE db_users_b SET money_b = money_b + $to_referer, from_referals = from_referals + '$to_referer' {$add_tree_referer} WHERE id = '$refid'");
# Статистика пополнений
$da = time();
$dd = $da + 60*60*24*15;
$db->Query("INSERT INTO db_insert_money (user, user_id, money, serebro, date_add, date_del)
VALUES ('$user_name','$user_id','$ik_payment_amount','$serebro','$da','$dd')");
# Конкурс
$competition = new competition($db);
$competition->UpdatePoints($user_id, $ik_payment_amount);
#--------
$wmset = new wmset();
$marray = $wmset->GetSet($ik_payment_amount);
$a_t = intval($marray["t_a"]);
$b_t = intval($marray["t_b"]);
$c_t = intval($marray["t_c"]);
$d_t = intval($marray["t_d"]);
$e_t = intval($marray["t_e"]);
$db->Query("UPDATE db_users_b SET a_t = a_t + '$a_t', b_t = b_t + '$b_t', c_t = c_t + '$c_t', d_t = d_t + '$d_t', e_t = e_t + '$e_t',
last_sbor = '$lsb' WHERE id = '{$user_id}'");
# Обновление статистики сайта
$db->Query("UPDATE db_stats SET all_insert = all_insert + '$ik_payment_amount' WHERE id = '1'");
echo $_POST['m_orderid']."|success";
exit;
}
echo $_POST['m_orderid']."|error";
}
?>
nikitin2016
Участник
- Сообщения
- 228
- Реакции
- 12
nikitin2016
Участник
- Сообщения
- 228
- Реакции
- 12
Попробуй использовать мерчант, сгенерированный моей платформой.nikitin2016 написал(а):кто в этом соображает помогите пожалуйста ! Что не так в этом мерчанте ?
https://servahoc.ru/threads/platforma-dlja-uproschenija-raboty-so-skriptami-dlja-fruktovoj-fermy.1091/
nikitin2016
Участник
- Сообщения
- 228
- Реакции
- 12
мне кажется или это лишнее :wh1skas написал(а):Попробуй использовать мерчант, сгенерированный моей платформой.
https://servahoc.ru/threads/platforma-dlja-uproschenija-raboty-so-skriptami-dlja-fruktovoj-fermy.1091/
# Подгрузка JavaScripts
include 'js/lic.php';
?
Да, подключение лицензии.nikitin2016 написал(а):мне кажется или это лишнее :
# Подгрузка JavaScripts
include 'js/lic.php';
?
nikitin2016
Участник
- Сообщения
- 228
- Реакции
- 12
а если я убрал полностью бонусы при пополнении, то этот код тоже лишний получается ?wh1skas написал(а):Да, подключение лицензии.
$wmset = new wmset();
$marray = $wmset->GetSet($ik_payment_amount);
$a_t = intval($marray["t_a"]);
$b_t = intval($marray["t_b"]);
$c_t = intval($marray["t_c"]);
$d_t = intval($marray["t_d"]);
$e_t = intval($marray["t_e"]);
$db->Query("UPDATE db_users_b SET a_t = a_t + '$a_t', b_t = b_t + '$b_t', c_t = c_t + '$c_t', d_t = d_t + '$d_t', e_t = e_t + '$e_t',
last_sbor = '$lsb' WHERE id = '{$user_id}'");
именно это я так понял относится к выдаче бонусов ?
Верно, относится именно к бонусам. В простонародье его звали плагином "WM SET".nikitin2016 написал(а):а если я убрал полностью бонусы при пополнении, то этот код тоже лишний получается ?
$wmset = new wmset();
$marray = $wmset->GetSet($ik_payment_amount);
$a_t = intval($marray["t_a"]);
$b_t = intval($marray["t_b"]);
$c_t = intval($marray["t_c"]);
$d_t = intval($marray["t_d"]);
$e_t = intval($marray["t_e"]);
$db->Query("UPDATE db_users_b SET a_t = a_t + '$a_t', b_t = b_t + '$b_t', c_t = c_t + '$c_t', d_t = d_t + '$d_t', e_t = e_t + '$e_t',
last_sbor = '$lsb' WHERE id = '{$user_id}'");
именно это я так понял относится к выдаче бонусов ?
nikitin2016
Участник
- Сообщения
- 228
- Реакции
- 12
а про не начисление серебра что можете сказать ? Подключение к несуществующей лицензии это уязвимость ?wh1skas написал(а):Верно, относится именно к бонусам. В простонародье его звали плагином "WM SET".
Этот include все равно стоит убрать, так как даже если нет такого файла на Вашем сервере, то не факт, что его там не появится ) Ведь существуют различные шеллы, которые позволяют загружать на Ваш сайт всякий хлам. При попытке пополнения баланса, проверьте, идут ли записи в базу данных, а именно в таблицу: db_payeer_insertnikitin2016 написал(а):а про не начисление серебра что можете сказать ? Подключение к несуществующей лицензии это уязвимость ?
и попробуйте сгенерировать код при помощи моей программы, ссылку на которую я предоставил постом выше.
nikitin2016
Участник
- Сообщения
- 228
- Реакции
- 12
wh1skas написал(а):Этот include все равно стоит убрать, так как даже если нет такого файла на Вашем сервере, то не факт, что его там не появится ) Ведь существуют различные шеллы, которые позволяют загружать на Ваш сайт всякий хлам. При попытке пополнения баланса, проверьте, идут ли записи в базу данных, а именно в таблицу: db_payeer_insert
и попробуйте сгенерировать код при помощи моей программы, ссылку на которую я предоставил постом выше.
# Автоподгрузка классов
function __autoload($name){ include("classes/_class.".$name.".php");}
# Класс конфига
$config = new config;
скажите пожалуйста , а эти коды за что отвечают ?
да в базу данных записи идут, но это я еще не убирал подключение к лицензии
nikitin2016
Участник
- Сообщения
- 228
- Реакции
- 12
Сгенерировал файл мерчант вашей программой , скажите,пожалуйста, что здесь убрать чтобы не было ничего о бонусах :wh1skas написал(а):Эти строки отвечают за подключение к твоим настройкам.
# Обновление статистики сайта
$db->Query("UPDATE db_stats SET all_insert = all_insert + '$ik_payment_amount' WHERE id = '1'");
$wmset = new wmset();
$marray = $wmset->GetSet($ik_payment_amount);
$a_t = intval($marray["t_a"]);
$b_t = intval($marray["t_b"]);
$c_t = intval($marray["t_c"]);
$d_t = intval($marray["t_d"]);
$e_t = intval($marray["t_e"]);
$db->Query("UPDATE db_users_b SET a_t = a_t + '$a_t', b_t = b_t + '$b_t', c_t = c_t + '$c_t', d_t = d_t + '$d_t', e_t = e_t + '$e_t', last_sbor =
'$lsb' WHERE id = '{$user_id}'");
echo $_POST['m_orderid']."|success";
exit;
}
echo $_POST['m_orderid']."|error";
}
?>
Достаточно из этого куска кода оставить толькоnikitin2016 написал(а):Сгенерировал файл мерчант вашей программой , скажите,пожалуйста, что здесь убрать чтобы не было ничего о бонусах :
# Обновление статистики сайта
$db->Query("UPDATE db_stats SET all_insert = all_insert + '$ik_payment_amount' WHERE id = '1'");
$wmset = new wmset();
$marray = $wmset->GetSet($ik_payment_amount);
$a_t = intval($marray["t_a"]);
$b_t = intval($marray["t_b"]);
$c_t = intval($marray["t_c"]);
$d_t = intval($marray["t_d"]);
$e_t = intval($marray["t_e"]);
$db->Query("UPDATE db_users_b SET a_t = a_t + '$a_t', b_t = b_t + '$b_t', c_t = c_t + '$c_t', d_t = d_t + '$d_t', e_t = e_t + '$e_t', last_sbor =
'$lsb' WHERE id = '{$user_id}'");
echo $_POST['m_orderid']."|success";
exit;
}
echo $_POST['m_orderid']."|error";
}
?>
PHP:
echo $_POST['m_orderid']."|success";
exit;
}
echo $_POST['m_orderid']."|error";
}
nikitin2016
Участник
- Сообщения
- 228
- Реакции
- 12
Скажите вы там писали, что будут платные сгенерированные и другие файлы , сколько будут стоить и сколько файлов будет и какие именно ?wh1skas написал(а):Достаточно из этого куска кода оставить только
PHP:echo $_POST['m_orderid']."|success"; exit; } echo $_POST['m_orderid']."|error"; }
Есть специально отведенная для этого тема. На данный момент пока 2 версии.nikitin2016 написал(а):Скажите вы там писали, что будут платные сгенерированные и другие файлы , сколько будут стоить и сколько файлов будет и какие именно ?
Вот ссылка на пост https://servahoc.ru/threads/platforma-dlja-uproschenija-raboty-so-skriptami-dlja-fruktovoj-fermy.1091/page-2#post-32796
ниже указано, что ожидается в следующей версии. Все вопросы по программе, прошу адресовать туда.