Добро пожаловать, Гость!
Тема закрыта для обсуждения
Уязвимость всего Социала смотрите - Страница 2
Баги/обновления движка | Уязвимость всего Социала смотрите

Уязвимость всего Социала смотрите
24 Июля 20188888 ббббббббббббббббббб
P.S. by Simptom
Я отредачил текст темы, дабы читабельно было!
Суть темы проста, есть бб тэг [size=][/size] и если указать size=100000, будет бардак на сайта.
Решение я написал в данной теме.
Комментарии:


kantry, Никто и не говорит, что мое решение единственное) Есть можешь предложить, предлагай, пользователи смогут выбирать что им по душе. В том и смысл поддержки.
В твоём варианте расброс размеров большой.
Я не любитель данных мероприятий, но да, можно строчно его впаять)

Энмеркар, Привет! Чего мне проверять то свои теории?.ржу. и при чем тут спейс?
Я специально написал простой регексп, что бы понятно было как такие вещи решаются. Вот еще понятнее, только ты уж сам "теорию" проверяй))
$bbcode['/[size=([5-9]|(?# от 5 до 9 или)[1-2][d]|(?# любая цифра или)3[0-2](?# не более 2-х))](.+)[/size]/isU'] = '<span style="font-size:$1px;">$2</span>';
Можешь просто скопировать к себе в бб-коды, и проверить.
Добавлено:
SimptomFD, колбек конечно хорошо, меня даже заинтересовало, но.. не профит))


Вот вам решение данной проблемы:
Открываем файл /sys/fnc/bbcode.php и ищем строку:
<?
if ($set['bb_size'])$bbcode['/[size=([0-9]+)](.+)[/size]/isU']='<span style="font-size:$1px;">$2</span>';
?>
Удаляем ее.
Спускаем чуть ниже по коду и ищем код:
<?
if (count($bbcode))$msg= preg_replace(array_keys($bbcode), array_values($bbcode), $msg);
?>
После этого кода прописываем код:
<?
if ($conf['bb_size'])
{
$msg = preg_replace_callback('/[size=([0-9]+)](.+)[/size]/isU', 'bb_size', $msg);
}
?>
Внизу файла, после закрытия функции BBcode() пишем код:
<?
function bb_size($text)
{
if ($text[1] < 10 || $text[1] > 20)
{
$text[1] = 14;
}
return '<span style="font-size: '.$text[1].'px;">'.$text[2].'</span>';
}
?>
Где 10 -минимальный размер, 20 - максимальный размер, 14 - размер по умолчанию.
Само условие редактируем по своему усмотрению.
Профит!

Автор темы
kantry (25 Июля 2018):
Энмеркар, не надо там ничего убирать, квантификатор замени, и все.
/[size=([0-9]{1,2})](.+)[/size]/
kantry, Здорова,, а смысл какой!?Энмеркар, не надо там ничего убирать, квантификатор замени, и все.
/[size=([0-9]{1,2})](.+)[/size]/



______________________
꧁༺Энмеркар༻꧂

Энмеркар (24 Июля 2018):
Parviz, В bbcode.php а именно в этом коде
// if ($set['bb_size'])$bbcode['/[size=([0-9]+)](.+)[/size]/isU']='<span style="font-size:$1px;">$2</span>'; решение простое убрать его к чёрту я его убрал и всё стало нормально
Энмеркар, не надо там ничего убирать, квантификатор замени, и все.Parviz, В bbcode.php а именно в этом коде
// if ($set['bb_size'])$bbcode['/[size=([0-9]+)](.+)[/size]/isU']='<span style="font-size:$1px;">$2</span>'; решение простое убрать его к чёрту я его убрал и всё стало нормально

/[size=([0-9]{1,2})](.+)[/size]/


Я чёт тоже не допер в каком месте это уязвимость.
Размер шрифта обычный.
А во избежание подобных случаев можно просто прописать условия на проверку с минимальным и максимальным размером.

Автор темы
Parviz, В bbcode.php а именно в этом коде
// if ($set['bb_size'])$bbcode['/[size=([0-9]+)](.+)[/size]/isU']='<span style="font-size:$1px;">$2</span>'; решение простое убрать его к чёрту я его убрал и всё стало нормально

______________________
꧁༺Энмеркар༻꧂