|
|
|
|
|
|
|
|
|
|
Уязвимость позволяет удаленному пользователю произвести XSS нападение и выполнить произвольные SQL команды в базе данных приложения.
SQL-инъекция существует из-за недостаточной обработки данных в сценарии 'sources/login.php'. Удаленный пользователь может с помощью специально сформированного файла куки выполнить произвольные SQL команды в базе данных приложения при выключенных Magic_quotes_gpc в конфигурационном файле php.
Отсутствует проверка входных данных при отображении результатов поиска в параметре 'highlite' сценария 'sources/post.php'. Удаленный пользователь может с помощью специально сформированного файла куки выполнить произвольный HTML сценарий в браузере жертвы в контексте безопасности уязвимого сайта.
Пример/Эксплоит: Эксплоит
Исправление:
Открыть файл ./sources/post.php, найти:
//----------------------------------------- // Add to mail queue //----------------------------------------- $DB->do_insert( 'mail_queue', array( 'mail_to' => $r['email'], 'mail_date' => time(), 'mail_subject' => $ibforums->lang['tt_subject'], 'mail_content' => $this->email->message ) );
Заменить на:
//----------------------------------------- // Add to mail queue //----------------------------------------- $DB->do_insert( 'mail_queue', array( 'mail_to' => $r['email'], 'mail_date' => time(), 'mail_subject' => $ibforums->lang['tt_subject'], 'mail_content' => $std->txt_safeslashes($this->email->message) ) );
Открыть файл ./sources/post.php, найти:
$DB->do_insert( 'mail_queue', array( 'mail_to' => $r['email'], 'mail_date' => time(), 'mail_subject' => $ibforums->lang['ft_subject'], 'mail_content' => $this->email->message ) );
Заменить на:
$DB->do_insert( 'mail_queue', array( 'mail_to' => $r['email'], 'mail_date' => time(), 'mail_subject' => $ibforums->lang['ft_subject'], 'mail_content' => $std->txt_safeslashes($this->email->message) ) );
Открыть файл ./sources/lib/usercp_functions.php, найти:
//----------------------------------------- // Check to make sure we don't just have // http:// in the URL box.. //----------------------------------------- if ( preg_match( "/^http:\/\/$/i", $ibforums->input['url_avatar'] ) ) { $ibforums->input['url_avatar'] = ""; } if ( empty($ibforums->input['url_avatar']) )
Заменить на:
//----------------------------------------- // Check to make sure we don't just have // http:// in the URL box.. //----------------------------------------- if ( preg_match( "/^http:\/\/$/i", $ibforums->input['url_avatar'] ) ) { $ibforums->input['url_avatar'] = ""; } if ( preg_match( "#javascript:#is", $ibforums->input['url_avatar'] ) ) { $ibforums->input['url_avatar'] = ""; } if ( empty($ibforums->input['url_avatar']) )
Открыть файл ./sources/login.php, найти:
$pid = $std->my_getcookie('pass_hash');
Заменить на:
$pid = (preg_match('/^([0-9A-Za-z]){32}$/', $std->my_getcookie('pass_hash')))?$std->my_getcookie('pass_hash'):"";
Работает на DokuWiki |