Уязвимость заключается в возможности sql-инъекции из-за отсутствия фильтрации переменной $id_catg в функции ViewCatg.
Для совершения инъекции злоумышленнику необходимо знать префикс БД.
Для исправления:
1) откройте файл modules/NukeC/index.php;
2) найдите функцию function ViewCatg();
3) замените код
Код
if ($id_catg != "") {
echo pathcatg($id_catg);
echo "<BR>\n";
$resultdesccatg = sql_query("select catg_desc from ".$nukecprefix."_ads_catg where id_catg='".$id_catg."'",$dbi);
list ($catg_desc) = sql_fetch_row($resultdesccatg,$dbi);
if ($catg_desc != "") {
echo $catg_desc;
echo "<BR>";
}
} else {
$id_catg = 0;
}
echo pathcatg($id_catg);
echo "<BR>\n";
$resultdesccatg = sql_query("select catg_desc from ".$nukecprefix."_ads_catg where id_catg='".$id_catg."'",$dbi);
list ($catg_desc) = sql_fetch_row($resultdesccatg,$dbi);
if ($catg_desc != "") {
echo $catg_desc;
echo "<BR>";
}
} else {
$id_catg = 0;
}
на
Код
if ($id_catg != "") {
$id_catg=intval($id_catg); //добавлено
echo pathcatg($id_catg);
echo "<BR>\n";
$resultdesccatg = sql_query("select catg_desc from ".$nukecprefix."_ads_catg where id_catg='".$id_catg."'",$dbi);
list ($catg_desc) = sql_fetch_row($resultdesccatg,$dbi);
if ($catg_desc != "") {
echo $catg_desc;
echo "<BR>";
}
} else {
$id_catg = 0;
}
$id_catg=intval($id_catg); //добавлено
echo pathcatg($id_catg);
echo "<BR>\n";
$resultdesccatg = sql_query("select catg_desc from ".$nukecprefix."_ads_catg where id_catg='".$id_catg."'",$dbi);
list ($catg_desc) = sql_fetch_row($resultdesccatg,$dbi);
if ($catg_desc != "") {
echo $catg_desc;
echo "<BR>";
}
} else {
$id_catg = 0;
}
4) сохраните изменения.