[25.04.2006] Уязвимости — XSS нападение и произвольные SQL команды

Уязвимость позволяет удаленному пользователю произвести XSS нападение и выполнить произвольные SQL команды в базе данных приложения и скомпрометировать уязвимую систему.

1. Уязвимость существует из-за недостаточной обработки входных данных в параметре «lastdate» в сценарии «search.php» перед вызовом функции «preg_replace()». Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный PHP код на целевой системе.

2. Уязвимость существует из-за недостаточной обработки входных данных в параметре «ck» в сценарии «index.php». Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольные SQL команды в базе данных приложения. Максимальная длина запроса ограничена 32 символами. Административный пользователь может с помощью параметра «name» в сценарии «admin.php» выполнить произвольный PHP сценарий на системе.

3. Уязвимость существует из-за того, что злоумышленник может загрузить злонамеренный JPEG файл с GIF заголовком, содержащим HTML сценарий. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценарий в браузере жертвы в контексте безопасности уязвимого сайта.

Пример/эксплоит: есть

Исправление:

2.1.х

Открыть файл ./ips_kernel/class_upload.php, найти код:

                else if ( ! $img_attributes[2] )
                {
                    // Unlink the file first
                    @unlink( $this->saved_upload_name );
                    $this->error_no = 5;
                    return;
                }

Заменить на:

                else if ( ! $img_attributes[2] )
                {
                    // Unlink the file first
                    @unlink( $this->saved_upload_name );
                    $this->error_no = 5;
                    return;
                }
                else if ( $img_attributes[2] == 1 AND ( $this->file_extension == 'jpg' OR $this->file_extension == 'jpeg' ) )
                {
                    // Potential XSS attack with a fake GIF header in a JPEG
                    @unlink( $this->saved_upload_name );
                    $this->error_no = 5;
                    return;
                }

Открыть файл ./sources/action_public/search.php, найти код:

            $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 );

Открыть файл ./sources/action_public/messenger.php, найти код:

            $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 ) );

2.0.х

Открыть файл ./sources/search.php, найти код:

            $this->output = preg_replace( "#(value=[\"']{$ibforums->input['lastdate']}[\"'])#i", "\\1 selected='selected'", $this->output )

Заменить на:

            $this->output = preg_replace( "#(value=[\"']".intval($ibforums->input['lastdate'])."[\"'])#i", "\\1 selected='selected'", $this->output );

Открыть файл ./sources/messenger.php, найти код:

            $this->lib->to_by_id = $ibforums->input['from_contact'];

Заменить на:

            $this->lib->to_by_id = intval( $ibforums->input['from_contact'] );

Открыть файл /sources/lib/task_functions.php, найти код:

            $this->cron_key = substr( trim($ibforums->input['ck']), 0, 32 );

Заменить на:

            $this->cron_key = addslashes( substr( trim(stripslashes($_REQUEST['ck'])), 0, 32 ) );
 

security/2.x.x/modcritical/25.04.2006.txt · Последние изменения: 2007/08/14 12:01 (внешнее изменение)

Работает на DokuWiki
© 2002—2006 ibresource
e-mail: wikiteam@iblink.ru