Soniks
15.03.2007, 13:51
Продукт: PHP-Nuke
Версия: 8.0 и ниже
Описание:
Уязвимость позволяет удаленному пользователю получить доступ к важным данным на системе. Уязвимость существует из-за недостаточной обработки входных данных в параметре куки файла "lang" в сценарии mainfile.php. Удаленный пользователь может просмотреть произвольные файлы на системе (и не только просмотреть!). Для успешной эксплуатации уязвимости требуется, чтобы на системе опция "magic_quotes_gpc" была отключена.
Источник: http://www.securitylab.ru
Устранение:
Открываем mainfile.php
Находим (318 строка):
if (isset($newlang) AND !stripos_clone($newlang,".")) {
if (file_exists("language/lang-".$newlang.".php")) {
setcookie("lang",$newlang,time()+31536000);
include_once("language/lang-".$newlang.".php");
$currentlang = $newlang;
} else {
setcookie("lang",$language,time()+31536000);
include_once("language/lang-".$language.".php");
$currentlang = $language;
}
} elseif (isset($lang)) {
include_once("language/lang-".$lang.".php");
$currentlang = $lang;
} else {
Заменяем на:
if (isset($_GET['newlang']) AND eregi('^[a-z0-9]+$',$_GET['newlang'])) {
if (file_exists("language/lang-".$_GET['newlang'].".php")) {
setcookie("lang",$_GET['newlang'],time()+31536000);
include_once("language/lang-".$_GET['newlang'].".php");
$currentlang = $_GET['newlang'];
} else {
setcookie("lang",$language,time()+31536000);
include_once("language/lang-".$language.".php");
$currentlang = $language;
}
} elseif (isset($_COOKIE['lang']) AND eregi('^[a-z0-9]+$',$_COOKIE['lang'])) {
include_once("language/lang-".$_COOKIE['lang'].".php");
$currentlang = $_COOKIE['lang'];
} else {
На этом все! :breton:
Версия: 8.0 и ниже
Описание:
Уязвимость позволяет удаленному пользователю получить доступ к важным данным на системе. Уязвимость существует из-за недостаточной обработки входных данных в параметре куки файла "lang" в сценарии mainfile.php. Удаленный пользователь может просмотреть произвольные файлы на системе (и не только просмотреть!). Для успешной эксплуатации уязвимости требуется, чтобы на системе опция "magic_quotes_gpc" была отключена.
Источник: http://www.securitylab.ru
Устранение:
Открываем mainfile.php
Находим (318 строка):
if (isset($newlang) AND !stripos_clone($newlang,".")) {
if (file_exists("language/lang-".$newlang.".php")) {
setcookie("lang",$newlang,time()+31536000);
include_once("language/lang-".$newlang.".php");
$currentlang = $newlang;
} else {
setcookie("lang",$language,time()+31536000);
include_once("language/lang-".$language.".php");
$currentlang = $language;
}
} elseif (isset($lang)) {
include_once("language/lang-".$lang.".php");
$currentlang = $lang;
} else {
Заменяем на:
if (isset($_GET['newlang']) AND eregi('^[a-z0-9]+$',$_GET['newlang'])) {
if (file_exists("language/lang-".$_GET['newlang'].".php")) {
setcookie("lang",$_GET['newlang'],time()+31536000);
include_once("language/lang-".$_GET['newlang'].".php");
$currentlang = $_GET['newlang'];
} else {
setcookie("lang",$language,time()+31536000);
include_once("language/lang-".$language.".php");
$currentlang = $language;
}
} elseif (isset($_COOKIE['lang']) AND eregi('^[a-z0-9]+$',$_COOKIE['lang'])) {
include_once("language/lang-".$_COOKIE['lang'].".php");
$currentlang = $_COOKIE['lang'];
} else {
На этом все! :breton: