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

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

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

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

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

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

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

Для исправления откройте файл 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