Проблема:
Недостаточная фильтрация входящих данных.Злоумышленник может получить информацию о пути установки скрипта
Ошибка в версии: 6.7 и более ранние. Иногда проходит на 7.0, с чем связано не пойму, скорее всего зависит от настроек вывода ошибок.
Степень опасности:
низкаяРучное исправление:
/engine/modules/functions.phpНаходим:
function check_xss () {
$url = html_entity_decode(urldecode($_SERVER['QUERY_STRING']));
if ($url) {
if ((strpos($url, '<') !== false) ||
(strpos($url, '>') !== false) ||
(strpos($url, '"') !== false) ||
(strpos($url, './') !== false) ||
(strpos($url, '../') !== false) ||
(strpos($url, '\'') !== false) ||
(strpos($url, '.php') !== false)
)
{
if ($_GET['do'] != "search" OR $_GET['subaction'] != "search") die("Hacking attempt!");
}
}
}
Меняем на:
function check_xss () {
$url = html_entity_decode(urldecode($_SERVER['QUERY_STRING']));
if ($url) {
if ((strpos($url, '<') !== false) ||
(strpos($url, '>') !== false) ||
(strpos($url, '"') !== false) ||
(strpos($url, './') !== false) ||
(strpos($url, '../') !== false) ||
(strpos($url, '\'') !== false) ||
(strpos($url, '[') !== false) ||
(strpos($url, ']') !== false) ||
(strpos($url, '{') !== false) ||
(strpos($url, '}') !== false) ||
(strpos($url, '.php') !== false)
)
{
if ($_GET['do'] != "search" OR $_GET['subaction'] != "search") die("Hacking attempt!");
}
}
}
Те же манипуляции и с файлом
/engine/inc/functions.inc.php