Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Баг с Яваскриптом (javascript) во всех версиях IkonBoard

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4

Открыть новую тему     Написать ответ в эту тему

Potap



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При заходе в этот топик вы заметили всплывающее окно? Подскажите как можно сделать, чтобы нельзя было такое делать? Представьте если в каждом топике будет по такому окну да и еще не по одному. Это же так раздражать будет.
[CLASSIFIED]
 
 Решение на 14.02.2005 г. Для закрытия уязвимости сделайте следующее:
 
в файле ikon.lib
 
sub ikoncode  делаем изменения. Подпрограмма, после изменения, должна выглядеть так:

Код:
 
sub ikoncode {
 
    my $post = shift;    
 
###not java### by DimoN
 $post =~ s/(\[img\])(.*?)(script:)(.*?)(\[\/img\])/$2$3$4\[<font color=red>Недопустимое действие! :moderator:<\/font>\]/isg;  
###not java end###  
###not view-source &mailto###
 $post =~ s/(\[img\])(.*?)(view-source:)(.*?)(\[\/img\])/$2$3$4\[<font color=red>Недопустимое действие! :moderator:<\/font>\]/isg;  
 $post =~ s/(\[img\])(.*?)(mailto:)(.*?)(\[\/img\])/\[<font color=red>Недопустимое действие! :moderator:<\/font>]/isg;    
 
###not view-source end###  
    $post =~ s/\<p>//isg;
    $post =~ s|\[\[|\{\{|g;
    $post =~ s|\]\]|\}\}|g;
    $post =~ s|\n\[|\[|g;
    $post =~ s|\]\n|\]|g;
    $post =~ s|<br>| <br>|g;
    $post =~ s|\[hr\]\n|\<hr width=40\% align=left>|g;
    $post =~ s|\[hr\]|\<hr width=40\% align=left>|g;
     
    ##таблица
     $post =~ s/\[table\]\[tr\]/\[table\]/isg;      
     while ($post =~ s{\[table\]([\S\s].+?[\S\s])\[/table\]}  
        {my $Tmp = $1;  
        $Tmp =~ s/\<br>/ /g;  
        $Tmp =~ s/\[tr\]/ <\/td><\/tr><tr class=lgf><td>/g;  
            $Tmp =~ s/\[tab\]/ <\/td><td>/g;  
            $Tmp = qq|<table cellpadding=\"3\" cellspacing=\"0\" bgcolor=\"#FFFFFF\" width=\"75%\" border=\"1\" bordercolor=\"#EEEEEE\"><tr class=lgf><td>$Tmp<\/td><\/tr><\/table>|;  
         }exisog) {}  
## end таблица          
     
     
    $post =~ s/\[q\]\s*(.*?)\s*\[\/q\]/<blockquote class=n2><span class=s>Цитата:<\/span><hr noshade size=1>$1<hr noshade size=1><\/blockquote>/isg;
    $post =~ s/\[quote\]\s*(.*?)\s*\[\/quote\]/<blockquote class=n2><span class=s>Цитата:<\/span><hr noshade size=1>$1<hr noshade size=1><\/blockquote>/isg;
   
    $post =~ s/\[url\](\S+?)\[\/url\]/<a href=\"$1\"\ target=\"_blank\">$1<\/a>/isg;
    $post =~ s/\[url=http:\/\/(\S+?)\]/<a href=\"http:\/\/$1\"\ target=\"_blank\">/isg;
    $post =~ s/\[url=(\S+?)\]/<a href=\"http:\/\/$1\"\ target=\"_blank\">/isg;
    $post =~ s/\[\/url\]/<\/a>/isg;
 
    $post =~ s/(^|\s|\<br\>)(http:\/\/\S+)/$1<a href="$2" target=_blank>$2<\/a> /isg;  
    $post =~ s/(^|\s|\<br\>)(https:\/\/\S+)/$1<a href="$2" target=_blank>$2<\/a> /isg;  
    $post =~ s/(^|\s|\<br\>)(ftp:\/\/\S+)/$1<a href="$2" target=_blank>$2<\/a> /isg;  
    $post =~ s/(^|\s|\<br\>)(www\.\S+)/$1<a href="http:\/\/$2" target=_blank>$2<\/a> /isg;
 
 
# Добавляем новые коды [c] и [s]
 
    $post =~ s/\[c\](.*?)\[\/c\]/<center>$1<\/center>/isg;
    $post =~ s/\[s\](.*?)\[\/s\]/<span class=s>$1<\/span>/isg;
 
    $post =~ s/\[b\]/<b>/isg;
    $post =~ s/\[\/b\]/<\/b>/isg;
    $post =~ s/\[i\]/<i>/isg;
    $post =~ s/\[\/i\]/<\/i>/isg;
    $post =~ s/\[u\]/<u>/isg;
    $post =~ s/\[br\]/<br>/isg;
    $post =~ s/\[\/u\]/<\/u>/isg;
    $post =~ s/\[img\](.+?)\[\/img\]/<img src=\"$1\">/isg;
     
#Опять фиксим яву by batva
$post =~ s/(\[size=)(\d+)\](.+?)(\[\/size\])/<font size=\"$2\">$3<\/font>/isg;    
$post =~ s/(\[font=)([A-Z a-z-]+)\](.+?)(\[\/font\])/<font face=\"$2\">$3<\/font>/isg;
$post =~ s/(\[color=)([A-Za-z]+|[#\dA-F]+)\](.+?)(\[\/color])/<font color=\"$2\">$3<\/font>/isg;  
#end фиксим яву  
     
    $post =~ s/\[\/color\]/<\/font>/isg;
    $post =~ s/\\http:\/\/(\S+)/<a href=\"http:\/\/$1\"\ target=\"_blank\">http:\/\/$1<\/a>/isg;
    $post =~ s/(\[list\])(.+?)(\[\/list\])/<UL>$2<\/UL>/isg;
    $post =~ s/(\[list=)(A|1)(\])(.+?)(\[\/list\])/<OL TYPE=$2>$4<\/OL>/isg;
    $post =~ s/(\[\*\])/<LI>/isg;
    $post =~ s/\[code\](.+?)\[\/code\]/<blockquote><font size=\"1\" face=\"Courier New\">Код:<\/font><hr><font face=\"Courier New\" size=\"2\"><pre>$1<\/pre><\/font><hr><\/blockquote>/isg;      
    $post =~ s/\[code\](.+?)\[\/code\]/<blockquote><font size=\"1\" face=\"Courier New\">Код:<\/font><hr><font face=\"Courier New\"><pre>$1<\/pre><\/font><hr><\/blockquote>/isg;
 
#Выключаем автоподсветку мыла DimoN    
    #$post =~ s/(\S+?)\@(\S+)/<a href=\"mailto:$1\@$2\"\>$1\@$2<\/a>/ig;
    $post =~ s/\[email=(\S+?)\]/<a href=\"mailto:$1\">/isg;
    $post =~ s/\[\/email\]/<\/a>/isg;
    $post =~ s/(\[FLASH SIZE=1\])(.+?)(\[\/FLASH\])/<OBJECT WIDTH=80 HEIGHT=60><PARAM NAME=movie VALUE="$2"><PARAM NAME=quality VALUE=high><PARAM NAME=scale VALUE=exactfit><PARAM NAME=menu VALUE=false><PARAM NAME=bgcolor VALUE=$BGColor><EMBED src="$2" quality=high menu=false scale=exactfit WIDTH=80 HEIGHT=60 swLiveConnect=true TYPE="application\/x-shockwave-flash"><\/EMBED><\/OBJECT>/isg;
    $post =~ s/(\[FLASH SIZE=2\])(.+?)(\[\/FLASH\])/<OBJECT WIDTH=160 HEIGHT=120><PARAM NAME=movie VALUE="$2"><PARAM NAME=quality VALUE=high><PARAM NAME=scale VALUE=exactfit><PARAM NAME=menu VALUE=false><PARAM NAME=bgcolor VALUE=$BGColor><EMBED src="$2" quality=high menu=false scale=exactfit WIDTH=160 HEIGHT=120 swLiveConnect=true TYPE="application\/x-shockwave-flash"><\/EMBED><\/OBJECT>/isg;
    $post =~ s/(\[FLASH SIZE=3\])(.+?)(\[\/FLASH\])/<OBJECT WIDTH=320 HEIGHT=240><PARAM NAME=movie VALUE="$2"><PARAM NAME=quality VALUE=high><PARAM NAME=scale VALUE=exactfit><PARAM NAME=menu VALUE=false><PARAM NAME=bgcolor VALUE=$BGColor><EMBED src="$2" quality=high menu=false scale=exactfit WIDTH=320 HEIGHT=240 swLiveConnect=true TYPE="application\/x-shockwave-flash"><\/EMBED><\/OBJECT>/isg;
    $post =~ s/(\[FLASH=)(\S+?)(\,)(.+?)(\])(.+?)(\[\/FLASH\])/ <embed src="$6" menu=false scale=exactfit HEIGHT="$4" WIDTH="$2" quality="high"><\/embed> /isg;
    $post =~ s/(\[center\])(.+?)(\[\/center\])/<center>$2<\/center>/isg;
    $post =~ s/(\[sound\])(\S+?)(\.mid|\.midi|\.wav)(\[\/sound\])/<EMBED SRC="$2$3" AUTOSTART=FALSE LOOP=FALSE WIDTH=100><\/EMBED> /isg;
    $post =~ s|\{\{|\[|g;
    $post =~ s|\}\}|\]|g;
     
    return $post;    
 
    } # end routine
     
     

 
Фиксятся две XSS-дырки (.http://www.securitylab.ru/46410.html):
Вариант 1:
В misc.cgi
после
Код:
elsif ($action eq "icq") {

ставим:
Код:
$UIN=&cleaninput($UIN);

после
Код:
elsif ($action eq "aim") {

ставим:
Код:
$aimname=&cleaninput($aimname);

Вариант 2:
находим в misc.cgi эту строчку:

Код:
elsif ($action eq "icq") {

добавляем после неё
Код:
if($UIN!~m!^\d+$!){
print header ();
&error('&Неправильный UIN ICQ');
}
else{

+ ставим закрыівающую фигурную скобку чуть ниже тут:

Код:
 
    ~;}
 
} # end elsif icq
 

 
Далее по AIM то же самое:
находим
Код:
elsif ($action eq "aim") {

добавляем после него
 
Код:
if($aimname!~m!^[\-A-Z a-z\d_]+$!){
print header ();
&error('&Неправильное имя AIM');
}
else{

и ниже закрываем скобку тут:

Код:
    ~;}
 
 
} # end aim


Первый вариант проводит стандартную замену "опасных" символов, второй — проверяет валидность номера ICQ и имени пользователя AIM'а.
 

+ сейчас при регистрации в поля ICQ и AOL можно вписать что угодно. Если нужна проверка их валидности, можно сделать следующее:
в register.cgi:
находим:

Код:
if($emailaddress !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/) { print header('text/html; charset=windows-1251'); &error("$ibtxt{'1858'}&$ibtxt{'0906'}"); }

ниже добавляем:  

Код:
if($aolname and $aolname!~m!^[\-A-Z a-z\d_]+$!){    
print header('text/html; charset=windows-1251');    
&error("&Неверное имя пользователя AIM!");    
}    
if($icqnumber and $icqnumber!~m!^\d+$!){    
print header('text/html; charset=windows-1251');    
&error("&Неверный ICQ UIN!");    
}  

profile.cgi
после строки:

Код:
$inuseravatar           = $query -> param('useravatar');

Добавляем:

Код:
if($newaolname && $newaolname!~m!^[\-A-Z a-z\d_]+$!){  
print header('text/html; charset=windows-1251');  
&error("&Неверное имя пользователя AIM!");  
}  
 
if($newicqnumber && $newicqnumber!~m!^\d+$!){  
print header('text/html; charset=windows-1251');  
&error("&Неверный ICQ UIN!");  
}  

   
 
 
 
 
 
 
 

Всего записей: 285 | Зарегистр. 06-07-2001 | Отправлено: 12:03 03-11-2001 | Исправлено: trew, 21:27 14-02-2005
Gram



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Т.е. хочешь сказать, что к примеру сайт bugtrack.ru и иже с ними занимаются не то чтобы полезными для народа вещами, а наоборот, лишь портят жизнь юзерам? Оригинально....

----------
Intellect Board | Miranda Gram Pack

Всего записей: 388 | Зарегистр. 22-01-2004 | Отправлено: 20:49 07-01-2005 | Исправлено: Gram, 15:34 08-01-2005
FROMFAF

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Завсисит от случая.
История показывает, что 10% поправят баг, а остальных будут иметь по полной программе.




Замечание за флейм. lynx.

Всего записей: 11 | Зарегистр. 07-01-2005 | Отправлено: 23:34 07-01-2005 | Исправлено: lynx, 04:14 08-01-2005
Gram



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FROMFAF, ну и ладно... не хотите как хотите (с) Я тоже много чего знаю, но не скажу, ибо от этого будет только всем хуже


----------
Intellect Board | Miranda Gram Pack

Всего записей: 388 | Зарегистр. 22-01-2004 | Отправлено: 01:13 08-01-2005 | Исправлено: Gram, 15:35 08-01-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Не подскажите фиксы в сообщение
Цитата:
 lynx Отправлено: 01:24 22-07-2004
в IB219rus_fixed3.zip есть или нет, а то совсем запутался. Я вот знаю что
Цитата:
lynx Отправлено: 19:11 18-08-2004
есть.

Цитата:
Фиксятся две XSS-дырки (.http://www.securitylab.ru/46410.html):


Цитата:
Вариант 2:

Его надо ставить или нет? Первый вариант стоит, а вот второй сомневаюсь что надо ставить, потому что могу запутаться без помощи.

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 08:30 12-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W
Ставить нужно вот этот постlynx : http://forum.ru-board.com/topic.cgi?forum=21&topic=0926&start=40#8  и следующий с поправкой.

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 17:53 12-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
trew
Спасибо за подсказку! Вроде пока все норм.

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 15:07 14-02-2005
Innominate

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 Уязвимость позволяет создавать алерты (всплывающие окна javascript) при использовании пейджера ICQ.  

Только лишь alert’ы? :-) Да-а-а, скудновата, однако, фантазия «исследователя» :-) А то, что с помощью java-скрипта запросто можно «угнать» чужую регистрацию (заполучив пароль) – это так, ничего особенного?! :-)))
 
Идея проста. Злоумышленнику надо воссоздать форму смены e-mail’а пользователя, занеся туда нужный (свой) e-mail адрес, и сделать автоматическое подтверждение формы. Зарег. пользователь заходит на страницу – срабатывает скрипт, меняющий его e-mail на ящик злоумышленника. Злоумышленник быстро пользуется получением якобы забытого пароля (если он не пришёл при смене ящика) или нового пароля, генерируемого форумом, который приходит на новый e-mail адрес. Вот и всё: регистрация в его распоряжении :-)
 
Можно послать сюрприз в виде личного сообщения админу или модеру и проделать вышеуказанные манипуляции с его регистрацией. Ну а что возможно делать потом, можно и не объяснять :-)
 
Кстати, я реально проделывал такие действия (т.е. они действительно реализуемы).




Подсказываем как избавиться от уязвимостей, а не как ими воспользоваться. Флуд. Замечание.

Всего записей: 1 | Зарегистр. 24-03-2005 | Отправлено: 21:48 24-03-2005 | Исправлено: Xnom, 13:55 28-03-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Баг с Яваскриптом (javascript) во всех версиях IkonBoard


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru