Уязвимость модуля переходы. Недостаточная фильтрация в модуле Переходы.

Уязвимость модуля переходы. Недостаточная фильтрация в модуле Переходы.

Уязвимость модуля переходы. Недостаточная фильтрация в модуле Переходы.

Ошибка в версии: все версии
Степень опасности: Высокая
Подробнее о исправлении в полной новости…Уязвимость модуля переходы. Недостаточная фильтрация в модуле Переходы.

Уязвимость модуля переходы. Недостаточная фильтрация в модуле Переходы.

Ошибка в версии: все версии
Степень опасности: Высокая

Подробнее о исправлении.

Для исправления откройте файл engine/modules/referer.php и найдите:


if(preg_match("/[<][\\/a-zA-Z]+(.*?)[>]/", urldecode(rawurldecode($http_referer)))) {
die ( "Переход заблокирован, перенаправление:<br /><br />Пожалуйста, нажмите <a href=\\"{$request_uri}\\">сюда</a>." );
}

Ниже добавьте:


if(preg_match("/[<][\\/a-zA-Z]+(.*?)[>]/", urldecode(rawurldecode($request_uri)))) {
die ( "Переход заблокирован, перенаправление:<br /><br />Пожалуйста, нажмите <a href=\\"{$config['http_home_url']}\\">сюда</a>." );
}

if(preg_match("/[<][\\/a-zA-Z]+(.*?)[>]/", $_SERVER['HTTP_USER_AGENT'])) {
die ( "Переход заблокирован, перенаправление:<br /><br />Пожалуйста, нажмите <a href=\\"{$config['http_home_url']}\\">сюда</a>." );
}

Немного ниже найдите:


if (checkurl($http_referer) != "false") {

ВЫШЕ добавьте:


$request_uri = $db->safesql( trim( htmlspecialchars( strip_tags( $request_uri ) ) ) );

Ниже найдите:


$rblock = str_replace( '[slink]', "<a href=\\"".$row['uri']."\\">", $rblock );

Замените на:


    $rblock = str_replace( '[slink]', "<a href=\\"".strip_tags($row['uri'])."\\">", $rblock );

Найдите:


$user_agent = $_SERVER['HTTP_USER_AGENT'];

Замените на:


$user_agent = @$db->safesql( htmlspecialchars( strip_tags( stripslashes( trim( $_SERVER['HTTP_USER_AGENT'] ) ) ), ENT_QUOTES ) );

Статья взята из открытых источников: http://dle-solutions.ru/dle/bags/208-nedostatochnaya-filtraciya-v-module-perehody.html

Добавить комментарий