![]() |
Исправление для IPB 2.1.x
2 сентября 2005 - уязвимы версии 2.1.0 и ниже
Открыть файл ./sources/lib/post_parser.php найти: (строчка 520) Код:
if ( is_array( $ibforums->cache['bbcode'] ) and count( $ibforums->cache['bbcode'] ) )Код:
# XSS CleanСкачать файл и загрузить его на сервер. Файл Изменение MIME-типов: Так же изменить MIME-типы некоторых опасных файлов, которые разрешены на форуме для прикрепления. Сделать следующее: 1)Войти в Админцентр 2)Воспользоваться группой настроек Прикрепляемые файлы -> Типы прикрепляемых файлов 3)Отредактировать опции для файлов ".htm", ".html", ".txt", ".rtf", выставив в поле "MIME-тип файла" значение "unknown/unknown" (без ковычек) 5 января 2006 - уязвимы версии 2.1.4 и ниже Открыть файл ./sources/ipsclass.php найти: Код:
$this->forum_read[$id] = $stamp;Код:
$this->forum_read[ intval($id) ] = intval($stamp);Код:
/*-------------------------------------------------------------------------*/Код:
/*-------------------------------------------------------------------------*/найти код: Код:
$this->read_array = unserialize(stripslashes($read));Код:
$this->read_array = $this->ipsclass->clean_int_array( unserialize(stripslashes($read)) );найти код: Код:
$this->read_array = unserialize(stripslashes($read));Код:
$this->read_array = $this->ipsclass->clean_int_array( unserialize(stripslashes($read)) );найти код: Код:
$this->read_array = unserialize(stripslashes($read));Код:
$this->read_array = $this->ipsclass->clean_int_array( unserialize(stripslashes($read)) );Открыть файл ./sources/action_public/usercp.php найти код: Код:
$topic_array = array_slice( array_keys( $topics ), 0, 5 );Код:
$topic_array = $this->ipsclass->clean_int_array( $topic_array );Файл /sources/classes/bbcode/class_bbcode.php найти код: Код:
$txt = preg_replace( "#javascript\:#is", "java script:", $txt );Код:
$txt = preg_replace( "#javascript\:#is", "java script:", $txt );Открыть файл ./ips_kernel/class_upload.php найти код: Код:
else if ( ! $img_attributes[2] )Код:
else if ( ! $img_attributes[2] )найти код: Код:
$this->output = preg_replace( "#(value=[\"']{$this->ipsclass->input['lastdate']}[\"'])#i", "\\1 selected='selected'", $this->output );Код:
$this->output = preg_replace( "#(value=[\"']".intval($this->ipsclass->input['lastdate'])."[\"'])#i", "\\1 selected='selected'", $this->output );найти код: Код:
$this->msglib->to_by_id = $this->ipsclass->input['from_contact'];Код:
$this->msglib->to_by_id = intval( $this->ipsclass->input['from_contact'] );Открыть файл ./sources/lib/func_taskmanager.php найти код: Код:
$this->cron_key = substr( trim(stripslashes($_REQUEST['ck'])), 0, 32 );Код:
$this->cron_key = addslashes( substr( trim(stripslashes($this->ipsclass->txt_alphanumerical_clean($_REQUEST['ck']))), 0, 32 ) );Открыть файл ./sources/ipsclass.php найти код Код:
var $acpversion = '21012.60504.u';Код:
var $acpversion = '21012.060516.s';найти код: Код:
$html = preg_replace( "/name=[\"']iconid[\"']\s*value=[\"']$post_icon\s?[\"']/", "name='iconid' value='$post_icon' checked", $html );Код:
$html = preg_replace( "/name=[\"']iconid[\"']\s*value=[\"']".intval($post_icon)."\s?[\"']/", "name='iconid' value='$post_icon' checked", $html );найти код: Код:
$html_forums = preg_replace( "/<option value=\"".$this->ipsclass->input['df']."\"/", "<option value=\"".$this->ipsclass->input['df']."\" selected", $html_forums );Код:
$html_forums = preg_replace( "/<option value=\"".intval($this->ipsclass->input['df'])."\"/", "<option value=\"".$this->ipsclass->input['df']."\" selected", $html_forums );найти в нем код: Код:
$this->orig_post = $this->ipsclass->DB->fetch_row();Код:
$this->orig_post = $this->ipsclass->DB->fetch_row();Открыть файл ./sources/classes/bbcode/class_bbcode.php найти код: Код:
# XSS CleanКод:
# XSS Cleanнайти код: Код:
for ($i=0; $i < count($match[0]); $i++)Код:
for ($i=0; $i < count($match[0]); $i++)найти код: Код:
$url['html'] = str_replace( "&" , "&" , $url['html'] );Код:
$url['html'] = str_replace( "&" , "&" , $url['html'] );Открыть файл ./sources/classes/bbcode/class_bbcode_core.php найти код: Код:
$url['show'] = preg_replace( "/&/" , "&" , $url['show'] );Код:
$url['show'] = str_replace( "&" , "&" , $url['show'] );Открыть файл ./sources/ipsclass.php найти код: Код:
/*-------------------------------------------------------------------------*/Код:
/*-------------------------------------------------------------------------*/найти код: Код:
if ( preg_match( "/^http:\/\/$/i", $this->ipsclass->input['url_photo'] ) )Код:
if ( $this->ipsclass->xss_check_url( $this->ipsclass->input['url_photo'] ) !== TRUE )найти код: Код:
if ( preg_match( "/^http:\/\/$/i", $this->ipsclass->input['url_avatar'] ) )Добавить после : Код:
if ( $this->ipsclass->xss_check_url( $this->ipsclass->input['url_avatar'] ) !== TRUE )Открыть файл ./sources/classes/bbcode/class_bbcode_core.php найти код: Код:
if ( preg_match( "/java(\s+?)?script(\:|\s)/is", $url ) )Код:
if ( preg_match( "/javascript\:/is", preg_replace( "#/\s{1,}#s", "", $url ) ) )Открыть файл ./sources/classes/bbcode/class_bbcode_core.php найти код: Код:
//-----------------------------------------Код:
//-----------------------------------------Открыть файл ./sources/action_public/moderate.php найти код: Код:
$this->topic = $this->ipsclass->DB->fetch_row();Код:
if ( $this->ipsclass->input['f'] AND ( $this->topic['forum_id'] != $this->ipsclass->input['f'] ) )Открыть файл ./sources/lib/func_topic_threaded.php найти: Код:
//-----------------------------------------Код:
//-----------------------------------------5 октября 2006 - Уязвимы версии 2.1.7 и ниже Открыть файл ./sources/action_admin/member.php найти: Код:
//-----------------------------------------Код:
//-----------------------------------------17 октября 2006 - Уязвимы версии 2.1.7 и ниже Открыть файл ./sources/classes/bbcode/class_bbcode_core.php найти: (строка ~ 924) Код:
$default = "[img]".$url."[/img]";Код:
$default = "[img]".str_replace( '[', '&# 091;', $url )."[/img]";Найти: Код:
if ( preg_match( "/[?&;]/", $url) )Код:
if ( preg_match( "/[?&;\<\[]/", $url) )Код:
preg_match_all( "#(\[$preg_tag\])((?!\[/$preg_tag\]).+?)?(\[/$preg_tag\])#si", $t, $match );Код:
preg_match_all( "#(\[$preg_tag\])((?!\[/$preg_tag\]).+?)?(\[/$preg_tag\])#si", $t, $match ); |
жаль что не написано от какой баги заплатки
|
Цитата:
|
да и по коду можно догадаться что за уязвимость.
|
_GaLs_
Пасиб:)Свой 2.1.7 зашытил:) Кстати темку реально можно было бы поднять. Только переименовать в Исправления для IPB, и будет гуд:) |
XSS уязвимость IP.Board
Обращено внимание на уязвимость через браузер Internet Explorer 6 и 7 версии XSS (межсайтовое выполнение сценариев). Атака может осуществляться через загруженные изображения и PDF файлы после запуска как HTML браузером конечного пользователя. Следует отметить, что XSS опасность не действует при включенных «HttpOnly(безопасных) cookies», которые были введены в IP.Board 2.2.0. Это означает, что такие cookies будет невозможно будет получить в IP.Board 2.2.0 и последующих версиях, используя этот баг. Хотя это является существенным недостатком Internet Explorer, была сделана небольшая работы, чтобы устранить баг при просмотре файлов с вредоносным кодом для конечного пользователя. Если файл будет содержать вредоносный код, то в загрузке файла будет отказано. Для устранения бага в IP.Board скачайте файл ниже, для нужной версии: Версия 2.1.x: class_upload.php Версия 2.2.x: class_upload.php Загрузите файл class_upload.php в папку форума ips_kernel заменяя существующий файл. |
Обновление безопасности в Ipb 2.2.х (30.05.2007)
Обновление безопасности в IPB 2.2.х (30.05.2007)
Уязвимость найдена в расширенном редакторе сообщений Invision Power Board, который позволяет оформлять текст и сразу же видеть результат (WYSIWYG). Появление уязвимости связано с недостаточной обработкой входных данных в некоторых параметрах, передаваемых через тэги редактора. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценарий в браузере жертвы в контексте уязвимого сайта. Пример/Эксплоит: Нет Исправление: Открыть файл ./jscripts/folder_rte_files/module_bbcodeloader.php найти: Код:
var editor_id = <?php print '"'.trim($_REQUEST['editorid']).'";'; ?>Код:
var editor_id = <?php print '"'.trim( htmlspecialchars( substr( $_REQUEST['editorid'], 0, 30 ) ) ).'";'; ?>найти: Код:
var editor_id = <?php print '"'.trim($_REQUEST['editorid']).'";'; ?>Код:
var editor_id = <?php print '"'.trim( htmlspecialchars( substr( $_REQUEST['editorid'], 0, 30 ) ) ).'";'; ?>найти: Код:
var editor_id = <?php print '"'.trim($_REQUEST['editorid']).'";'; ?>Код:
var editor_id = <?php print '"'.trim( htmlspecialchars( substr( $_REQUEST['editorid'], 0, 30 ) ) ).'";'; ?>найти: Код:
var editor_id = <?php print '"'.trim($_REQUEST['editorid']).'";'; ?>Код:
var editor_id = <?php print '"'.trim( htmlspecialchars( substr( $_REQUEST['editorid'], 0, 30 ) ) ).'";'; ?>найти: Код:
var editor_id = <?php print '"'.trim($_REQUEST['editorid']).'";'; ?>Код:
var editor_id = <?php print '"'.trim( htmlspecialchars( substr( $_REQUEST['editorid'], 0, 30 ) ) ).'";'; ?>найти: Код:
var editor_id = <?php print '"'.trim($_REQUEST['editorid']).'";'; ?>Код:
var editor_id = <?php print '"'.trim( htmlspecialchars( substr( $_REQUEST['editorid'], 0, 30 ) ) ).'" |
| Время: 06:00 |