Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Уязвимости Защиты (http://forum.mynuke.ru/forumdisplay.php?f=15)
-   -   PHP-Nuke XSS нападение (http://forum.mynuke.ru/showthread.php?t=363)

Soniks 25.06.2005 14:51

PHP-Nuke XSS нападение
 
Продукт: 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
Находим функцию:
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");
        }


Заменяем на:
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
Через аккаунт установить аватар нельзя - только через профиль в форуме.


Часовой пояс GMT +4, время: 20:28.

Copyright © 2005 by Soniks