VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Уязвимость находится в файле /vbplaza/tracklist.php
Уязвимый код:
Code:
// try to get the songs for this user
if (empty($_REQUEST['userid']))
{
// set it to the currently logged in user
$_REQUEST['userid'] = $vbulletin->userinfo['userid'];
}
// grab any user tracks from the database
$usertrack_cache = array();
if ($usertracks = $vbulletin->db->query_read("
SELECT *
FROM " . TABLE_PREFIX . "vbplaza_track_user
WHERE userid = " . $_REQUEST['userid'] . "
ORDER BY displayorder, usertrackid
"))
Нечего не проверяется, посему очень легко воспользоваться.
Пример:
По подсказке kerk, чтобы излечить эту гадость, нужно заменить этот кусок кода:
Code:
if (empty($_REQUEST['userid']))
{
// set it to the currently logged in user
$_REQUEST['userid'] = $vbulletin->userinfo['userid'];
}
на этот:
Code:
if (!intval($_REQUEST['userid']))
{
// set it to the currently logged in user
$_REQUEST['userid'] = $vbulletin->userinfo['userid'];
}
Last edited by artscripts : 11-11-2014 at 10:34 AM.