Forum. MyNuke.ru
Forum. MyNuke.ruСообщения за сегодняПерсональные сообщения

Навигация  
Вернуться   Forum. MyNuke.ru > PHP-NUKE > Безопасность > Уязвимости Защиты
Ник
Пароль
Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Soniks вне форума      Старый Xss - обход фильтра тегов Php-nuke #1  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
16.12.2005, 23:01

Продукт: PHP-NUKE

Версия: 7.9 и ниже

Затронуты файлы: mainfile.php

Описание: Имеющийся по стандарту фильтр входящего POST и GET запросов обрабатывает, работает не корректно, и имеется возможность все-таки внедрить вредоносный html код и применить XSS атаку.

Устранение:
Открываем mainfile.php
Находим:
PHP код:
 foreach ($_GET as $sec_key => $secvalue) {
    if ((
eregi("<[^>]*script*\"?[^>]*>"$secvalue)) ||
(
eregi("<[^>]*object*\"?[^>]*>"$secvalue)) ||
(
eregi("<[^>]*iframe*\"?[^>]*>"$secvalue)) ||
(
eregi("<[^>]*applet*\"?[^>]*>"$secvalue)) ||
(
eregi("<[^>]*meta*\"?[^>]*>"$secvalue)) ||
(
eregi("<[^>]*style*\"?[^>]*>"$secvalue)) ||
(
eregi("<[^>]*form*\"?[^>]*>"$secvalue)) ||
(
eregi("<[^>]*img*\"?[^>]*>"$secvalue)) ||
(
eregi("<[^>]*onmouseover*\"?[^>]*>"$secvalue)) ||
(
eregi("\([^>]*\"?[^)]*\)"$secvalue)) ||
(
eregi("\""$secvalue)) || 
(
eregi("forum_admin"$sec_key)) || 
(
eregi("inside_mod"$sec_key))) {
die (
"<center><img src=images/logo.gif><br><br><b>The html tags you attempted to use are not allowed</b><br><br>[ <a href=\"javascript:history.go(-1)\"><b>Go Back</b></a> ]");
    }
}
foreach (
$_POST as $secvalue) {
    if ((
eregi("<[^>]*onmouseover*\"?[^>]*>"$secvalue)) || (eregi("<[^>]script*\"?[^>]*>"$secvalue)) || (eregi("<[^>]style*\"?[^>]*>"$secvalue))) {
        die (
"<center><img src=images/logo.gif><br><br><b>The html tags you attempted to use are not allowed</b><br><br>[ <a href=\"javascript:history.go(-1)\"><b>Go Back</b></a> ]");
    }


И заменяем на:
PHP код:
 foreach ($_GET as $sec_key => $secvalue) {
        if((
eregi("<[^>]*script*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*object*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*iframe*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*applet*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*meta*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*style*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*form*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*img*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*onmouseover *\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*body *\"?[^>]*"$secvalue)) ||
                (
eregi("\([^>]*\"?[^)]*\)"$secvalue)) ||
                (
eregi("\""$secvalue)) ||
                (
eregi("forum_admin"$sec_key)) ||
                (
eregi("inside_mod"$sec_key))) 
                {
                 die (
"<center><img src=images/logo.gif><br><br><b>The html tags you attempted to use are not allowed</b><br><br>[ <a href=\"javascript:history.go(-1)\"><b>Go Back</b></a> ]");
                }
        }
        foreach (
$_POST as $secvalue) {
                if ((
eregi("<[^>]*iframe*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*object*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*applet*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*meta*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*form*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*img*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*onmouseover*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]script*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]*body*\"?[^>]*"$secvalue)) ||
                (
eregi("<[^>]style*\"?[^>]*"$secvalue))) 
                {
                 die (
"<center><img src=images/logo.gif><br><br><b>The html tags you attempted to use are not allowed</b><br><br>[ <a href=\"javascript:history.go(-1)\"><b>Go Back</b></a> ]");
                }
        } 
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Совмещаю PHP Nuke 7.8 и vBulletin 3.0.7 Ernest-Oleg-Iv Настройка и Изменение 5 07.01.2007 17:18
Автоматическая генерация Мета тегов для Nuke 7.9 Sarat Установка 4 22.12.2006 13:17
пробоемы с Php nuke 7.5 rus незарегистрированный Установка 3 08.09.2005 01:20


Часовой пояс GMT +4, время: 13:11.


На Верх
Рейтинг@Mail.ru