Тема: Уязвимости в личных сообщениях и моде загрузки файов
Очередные дыры.
Источник: efc.net.ru/viewtopic.php?id=41
Лечить личку так:
находим в message_popu.php строку:
$result_messages = $db->query('SELECT owner, sender, posted, subject FROM '.$db->prefix.'messages WHERE status=0 AND id='.$_GET['id']) or error('Unable check owner popup', __FILE__, __LINE__, $db->error());и меняем в ней
$_GET['id']на
$idМод загрузки:
в файле downloads.php находим строку
$aid = $_GET['aid'];и меняем ее на
$aid = intval($_GET['aid']);Наша сборка имеет эти дыры, поэтому всем эти процедуры крайне желательно сделать как можно быстрее. Предварительно рекомендуется в админке отключить личные сообщения, а downloads.php вообще переименовать до излечения.
Добавлено спустя 7 минут 26 секунд:
Далее, файл filemap.php:
находим строку
$result = $db->query('SELECT u.username, u.group_id, u.num_files, u.file_bonus, g.g_id, g.g_file_limit, g.g_title FROM '.$db->prefix.'users AS u JOIN '.$db->prefix.'groups AS g ON (u.group_id=g.g_id) WHERE u.id='.$_GET['user_id']) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());меняем ее на две строки:
$uid = intval($_GET['user_id']);
$result = $db->query('SELECT u.username, u.group_id, u.num_files, u.file_bonus, g.g_id, g.g_file_limit, g.g_title FROM '.$db->prefix.'users AS u JOIN '.$db->prefix.'groups AS g ON (u.group_id=g.g_id) WHERE u.id='.$uid) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());Далее после этих строк во всем filemap.php надо заменить все
$_GET['user_id']на
$uidДобавлено спустя 10 минут 24 секунды:
С отправкой личных сообщений будем думать, поэтому пока лс лучше отключить