Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Обнаружена уязвимость в службе приватных сообщений, позволяющая злоумышленнику отправить приватное сообщение любому пользователю форума от имени любого другого пользователя.
Всем администраторам, имеющим на форуме мод приватных сообщений рекомендуется добавить в файл message_send.php после строки ~36 содержащей:
if (isset($_POST['form_sent']))
{
следующую строку, если её там нет:
confirm_referrer('message_send.php');
Не ну так совсем неинтересно, взять и на паблик 0day багу
P.S. Поздравляю с 1024 постом
Не ну так совсем неинтересно, взять и на паблик 0day багу
Slavik я тебя не понял.
Я к тому что багу надо было юзать, а не писать о ней
Slavik
Ну мне смысла нет её юзать. А вообще служба личных сообщений ещё требует доработки, поскольку сообщения лежат на сервере открытым текстом.
сообщения лежат на сервере открытым текстом.
Хм... а в других движках?
Добавлено 01.20.2007 14:01:43:
Кстати, не скажешь где именно баг?
Вижу вот такой запрос:
// "Send" message
$db->query('INSERT INTO '.$db->prefix.'messages (owner, subject, message, sender, sender_id, sender_ip, smileys, showed, status, posted) VALUES(
\''.$id.'\',
\''.addslashes($subject).'\',
\''.addslashes($message).'\',
\''.addslashes($pun_user['username']).'\',
\''.$pun_user['id'].'\',
\''.get_remote_address().'\',
\''.$smilies.'\',
\'0\',
\'0\',
\''.time().'\'
)') or error('Unable to send message', __FILE__, __LINE__, $db->error());
А $pun_user['username'] сложно изменить не из php.
открытым текстом
Вообщето да! Будучи админом форума и имея доступ к БД, можно по вечерам себе устраивать читку чужих ЛС
Всплывается вопрос, а действительно ли это надо убирать?
а действительно ли это надо убирать?
С точки зрения пользователей - да. Кому понравится что его личка может быть прочитана сторонними лицами?
На punres.org люди жалуются что не могут пароли юзеров смотреть, а тут какая-то личка
а punres.org люди жалуются что не могут пароли юзеров смотреть
фигасе, времечко пришло
А я XSS нашел два
Открыть message_popup.php
Найти:
<p><?php echo $lang_pms['Popup new'], $return['sender'], $lang_pms['Popup subj'], $return['subject'] ?><br><?php echo $lang_pms['Popup send'], format_time($return['posted']) ?></p>
Заменить на:
<p><?php echo $lang_pms['Popup new'], pun_htmlspecialchars($return['sender']), $lang_pms['Popup subj'], pun_htmlspecialchars($return['subject']) ?><br><?php echo $lang_pms['Popup send'], format_time($return['posted']) ?></p>
Канечно маловероятно, что злоумышленику удасться вызвать запустить скрипт из своего ника ($return['sender']), то малали.
Редактировался FedKoFF (2007-01-26 19:47:39)
FedKoFF, ИМХО, это перестраховка уже.
а как эту уязвимость использовать-то? как отправить ЛС не от своего имени?
З.Ы. я владелец форума, а не script kiddie какой-то
Просто в ПХП не рублю достаточно. Добавил рекомедованую строчку, но любопытсво берёт своё, что и от чего я защитил/исправил? В общих чертах хотя-бы.
Пользователя форума можно направить на специальным образом сформированную страницу с нулевым фреймом, вот в этом фрейме и можно отправить сообщение от этого пользователя.
Enemy
Имя твое не внушает доверия
confirm_referrer('message_send.php');
2 hcs
Не мог бы ты разъяснить, почему ты считаешь, что оно надо в личке и не надо допустим при отправке сообщений?
Себе поставил, просто уже нашёлся маньяк безопасности, который с отключённым реферером не мог отправить сообщение
можно и при отправке сообщений и в репутации кстати тоже, при отправке резона.
кстати на одном форуме, где я есть модератор, были истории с массовой подделкой репы, это нечто подобное.
можно этого не делать, поскольку уязвимость не критичная.
а в личке не мешало бы, чтобы предотвратить ситуацию, когда например админу приходит сообщение от юзера, возможно модера, со слезными мольбами помочь сменить пароль, ибо автоматичекси не меняется, письма не приходят и т.п.
Ну а вообще давайте проведем эксперимент. Я сейчас подготовлю эксплойт и выложу сюда ссылку. Если опасения подтвердятся, то придется во всём коде проверять при обработке форм реферер.
На сколко я понял ничего ужасного не случилось или я что-то пропустил?
Редактировался Griffon (2007-02-09 10:23:18)
Судя по тому что в корзине не появлось твое сообщение с призывом переслать тебе веб-мани - ничего не получилось )
Но если я в эксплойт впишу твой ник, то такое сообщение появится, не зависимо от твоей воли.
Попробуй эту ссылку снова
Попробовал, изменений если чесно не вижу )
Ну и хорошо
Собственно, хотелось бы услышать ваш вердикт, нужен ли confirm_referrer в личке или всё таки нет?
Рекомендуется.
Понятно
а в какой директори находятся сообщения чтобы их просмотреть?