PDA

View Full Version : PHP-Nuke XSS нападение


Soniks
25.06.2005, 14:51
Продукт: PHP-Nuke
Версия: 7.8 и ниже

Описание: В Php-Nuke найдена серьезнейшая уязвимость в профиле пользователя, позволяющая наподавшему произвести XSS нападение и получить куки пользователя, администратора!

Устранение уязвисости: запретить в настройках форума удаленных аватаров!

P.S.:Сейчас на данный момент нет времени :smile: , чуть позже напешу конкретное устранение уязвимости!

BuKTOp
25.06.2005, 16:43
а собственно как работает Xss актака? можно тоже заострить внимание на этом. и еще как удалить эту уязвимость если я использую не Phpbb, а Ipb 1.3 ?

Soniks
26.06.2005, 16:21
Дырка очень опасная так что фиксим все!:pirate:

Открываем modules/Your_Account/index.php
Находим функцию:
function avatarlinksave($avatar) {
global $user_prefix, $db, $module_name, $user, $cookie;
if (is_user($user)) {
getusrinfo($user);
cookiedecode($user);
include("header.php");
title("Avatar Selection Successful!");
OpenTable();
nav();
CloseTable();
OpenTable();
$db->sql_query("UPDATE ".$user_prefix."_users SET user_avatar='$avatar', user_avatar_type='2' WHERE username='$cookie[1]'");
echo "<center><font class=\"content\">Avatar for ".$cookie[1]." Saved!</center></font><br><br>";
if (ereg("(http)", $avatar)) { echo "<center>Your New Avatar:<br><br><IMG alt=\"\" src=\"$avatar\"><br><br>[ <a href=\"modules.php?name=$module_name&op=edituser\">Back to Profile</a> | <a href=\"modules.php?name=$module_name\">Done</a> ]<br><br></center>"; } elseif ($avatar) { echo "<center>Your New Avatar:<br><br><IMG alt=\"\" src=\"modules/Forums/images/avatars/$avatar\"><br><br>[ <a href=\"modules.php?name=$module_name&op=edituser\">Back to Profile</a> | <a href=\"modules.php?name=$module_name\">Done</a> ]<br><br></center>"; }
CloseTable();
include("footer.php");
}
}

Заменяем на:
function avatarlinksave($avatar) {
global $user_prefix, $db, $module_name, $user, $cookie;
if (is_user($user)) {
getusrinfo($user);
cookiedecode($user);
$error = false;
if ( !preg_match('#^(http)|(ftp):\/\/#i', $avatar) )
{
$avatar = 'http://' . $avatar;
}
if ( !preg_match("#^((ht|f)tp://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png))$)#is", $avatar) )
{
$error = true;
include("header.php");
OpenTable();
nav();
echo "<center><br><br><br>Не правильный формат ссылки!!<br><br>";
echo _GOBACK."</center>";
CloseTable();
include("footer.php");
die();
}
$avatar = str_replace("\'", "''", $avatar);
if(!$error ){
include("header.php");
title("Выбранный Аватор Сохранен Удачно!");
OpenTable();
nav();
CloseTable();
OpenTable();
$db->sql_query("UPDATE ".$user_prefix."_users SET user_avatar='$avatar', user_avatar_type='2' WHERE username='$cookie[1]'");
echo "<center><font class=\"content\">Аватор для ".$cookie[1]." Сохранен!</center></font><br><br>";
if (ereg("(http)", $avatar)) { echo "<center>Ваш новый Аватор:<br><br><IMG alt=\"\" src=\"$avatar\"><br><br>[ <a href=\"modules.php?name=$module_name&op=edituser\">Назад к Профилю</a> | <a href=\"modules.php?name=$module_name\">Завершить</a> ]<br><br></center>"; } elseif ($avatar) { echo "<center>Ваш новый аватор:<br><br><IMG alt=\"\" src=\"modules/Forums/images/avatars/$avatar\"><br><br>[ <a href=\"modules.php?name=$module_name&op=edituser\">Назад к Профилю</a> | <a href=\"modules.php?name=$module_name\">Завершить</a> ]<br><br></center>"; }
CloseTable();
include("footer.php");
}
}
}


BuKTOp про XSS можно почитать в интернете, этого материало много, а насчет Ipb это все зависит как у вас встроена этот форум, если он использует эту функцию, то тогда тоже надо ее пофиксить.

Green Bear
01.07.2005, 22:39
жаль что автора уязвимости не указывают секьюрити сайты =)

Soniks
02.07.2005, 00:42
Green Bear в каком плане? как это прикажете понять?

Jay
12.10.2005, 00:17
Soniks, не могу найти в своем modules/Your_Account/index.php этой функции - у меня стоит хак No_mail_registration - стоит беспокоиться?

Soniks
12.10.2005, 00:56
Jay должен быть ищите получше, беспокоится стоит!
Ищете по function avatarlinksave($avatar) {

Jay
12.10.2005, 09:49
Soniks, в том-то и дело, что нет. Стндартный index.php из модуля Your_Account "весит" где-то 91 кб. А из хака No_mail_registration, которым я его заменил, - 65 кб. В этом файле вообще нет ни одного упоминания avatarlinksave. Вот так.

Soniks
12.10.2005, 12:16
Jay а версия нюки какая? тогда по в редактировании профеля пользователя через акаунт нет возможности установить аватор, если так то беспокоится не о чем!

Jay
12.10.2005, 16:26
Soniks php-nuke 7.6 +2.9
Через аккаунт установить аватар нельзя - только через профиль в форуме.