Уязвимости Web приложений

Защита информации, сетевая безопасность, уязвимости

Модератор: Rostov114

Уязвимости Web приложений

Сообщение Rostov114 » 30 янв 2009, 15:44

В данной теме выкладываются уязвимости корорые найдены мной и не только.
Так же к некоторым будут перелагался исправления.

Так же особо одаренным прошу лучше смотреть в пункт Программа, чтобы потом не спрашивать где пути от IPB найти в TBDev.
Последний раз редактировалось Rostov114 17 фев 2009, 01:38, всего редактировалось 4 раз(а).
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3197
Зарегистрирован: 18 окт 2007, 02:21

Re: Уязвимости Web приложений

Сообщение Rostov114 » 03 фев 2009, 18:13

Программа: IPB 2.2.2 null

Опасность: Критическая

Наличие эксплоита: Да

Тип: Удаленный php-инклудинг

Описание: Уязвимость позволяет удаленному пользователю выполнить удаленный скрипт на атакуемом сервере.

Решение:
Открыть /source/action_public/profile.php
Найти:
Код: Выделить всёРазвернуть
if ( $chk )
{
         @include (
$chk);
         exit();

Заменить на:
Код: Выделить всёРазвернуть
if ( $chk )
{
   echo 
"Fuck you, Spilberg... Fixed...";
   exit();


P.S. Уязвимость не моя..но в ФОСе присутствует.
Последний раз редактировалось Rostov114 13 фев 2009, 03:24, всего редактировалось 1 раз.
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3197
Зарегистрирован: 18 окт 2007, 02:21

Re: Уязвимости Web приложений

Сообщение Rostov114 » 03 фев 2009, 18:15

Программа: phpSysInfo 2.5.х, возможно другие версии.

Опасность: Низкая

Наличие эксплоита: Да

Тип: Обход ограничений, Раскрытие путей

Описание:
1. Уязвимость позволяет удаленному пользователю обойти некоторые ограничения безопасности.

Уязвимость существует из-за недостаточной обработки входных данных в параметре "lng" в сценарии index.php. Удаленный пользователь может с помощью специально сформированного запроса, содержащего символы обхода каталога определить наличие файла на системе.

Пример: http://www.somesite.com/phpSysInfo/inde ... 00&lng=%00

2. Уязвимость позволяет удаленному пользователю узнать реальный путь к файлу.

Уязвимость существует из-за не достаточной обработки входных cookies в сценарии index.php. Удаленный пользователь может изменив параметр cookies - template или lng спровоцировать ошибку в которой будет содержатся реальный путь к файлу.

Решение: На данный момент не имеется.
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3197
Зарегистрирован: 18 окт 2007, 02:21

Re: Уязвимости Web приложений

Сообщение Rostov114 » 13 фев 2009, 00:59

Программа: IPB 2.3.x возможно и более ранние версии

Опасность: Низкая

Наличие эксплоита: Да

Тип: SQL иньекция

Описание: Уязвимость позволяет удаленному пользователю имеющему доступ в администраторскую панель совершить SQL иньекцию.
Уязвимость существует из-за недостаточной обработки входных данных в параметре f при очистки форумов через администраторскую панель.

Решение:
Открыть ./sources/action_admin/forums.php
Найти(~ 512 стр):
Код: Выделить всёРазвернуть
$form_array = array(); 

Ниже добавить:
Код: Выделить всёРазвернуть
$this->ipsclass->input['f'] = intval($this->ipsclass->input['f']); 


Найти(~578 стр):
Код: Выделить всёРазвернуть
$modfunc->ipsclass =& $this->ipsclass; 

Ниже добавить:
Код: Выделить всёРазвернуть
$this->ipsclass->input['f'] = intval($this->ipsclass->input['f']); 
Последний раз редактировалось Rostov114 17 фев 2009, 02:58, всего редактировалось 1 раз.
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3197
Зарегистрирован: 18 окт 2007, 02:21

Re: Уязвимости Web приложений

Сообщение Rostov114 » 16 фев 2009, 15:31

Программа: Торрент-трекеры основанные на TBDev 2.0 YSE

Опасность: Средняя

Наличие эксплоита: Да

Тип: SQL иньекция

Описание: Уязвимость позволяет удаленному пользователю выполнить произвольный SQL запрос в атакуемой системе.

Уязвимость существует из-за не достаточной проверки e-mail на валидность при регистрации и дальнейшее использование не отфильтрованного e-mail в не экранируемом SQL запросе, что дает возможность вписать произвольный SQL.

Решение:
Открыть: ./takesignup.php
Найти:
Код: Выделить всёРазвернуть
$a = (@mysql_fetch_row(@sql_query("SELECT COUNT(*) FROM users WHERE email='$email'"))) or die(mysql_error()); 

или
Код: Выделить всёРазвернуть
$a = (@mysql_fetch_row(@sql_query("SELECT COUNT(*) FROM users WHERE email='$email'"))); 

Заменить на:
Код: Выделить всёРазвернуть
$a = (@mysql_fetch_row(@sql_query("SELECT COUNT(*) FROM users WHERE email=".sqlesc($email)))); 

Данная "заплатка" спасет от SQL иньекции но не спасет от неверно указанного e-mail.
Последний раз редактировалось Rostov114 22 фев 2009, 14:30, всего редактировалось 5 раз(а).
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3197
Зарегистрирован: 18 окт 2007, 02:21

Re: Уязвимости Web приложений

Сообщение Rostov114 » 17 фев 2009, 01:15

Программа: TBDevRU v3.1 возможно и более ранние.

Опасность: Низкая

Наличие эксплоита: ]Да

Тип: XSS

Описание: Уязвимость позволяет удаленному пользователю совершить XSS атаку на сайт.

Уязвимость существует из-за недостаточной обработки входных данных id в скрипте userdetails.php.

Решение: Найти:
Код: Выделить всёРазвернуть
  bark("Не верный ID $id.");  

Заменить на:
Код: Выделить всёРазвернуть
  bark("Не верный ID.");  
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3197
Зарегистрирован: 18 окт 2007, 02:21

Re: Уязвимости Web приложений

Сообщение Rostov114 » 17 фев 2009, 03:19

Программа: IPB 2.3.x возможно и более ранние версии

Опасность: Низкая

Наличие эксплоита: Да

Тип: SQL иньекция

Описание: Уязвимость позволяет удаленному пользователю имеющему доступ в администраторскую панель совершить SQL иньекцию.
Уязвимость существует из-за недостаточной обработки входных данных в параметре f при изменении правил через администраторскую панель.

Решение:
Открыть ./sources/action_admin/forums.php
Найти(~312 стр):
Код: Выделить всёРазвернуть
$this->ipsclass->DB->simple_construct( array( 'select' => 'id, name, show_rules, rules_title, rules_text', 'from' => 'forums', 'where' => "id=".$this->ipsclass->input['f'] ) ); 

Выше добавить:
Код: Выделить всёРазвернуть
$this->ipsclass->input['f'] = intval($this->ipsclass->input['f']);  
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3197
Зарегистрирован: 18 окт 2007, 02:21

Re: Уязвимости Web приложений

Сообщение Rostov114 » 19 фев 2009, 08:38

Программа: Торрент-трекеры основанные на TBDev 2.0 YSE

Опасность: Средняя

Наличие эксплоита: Да

Тип: SQL иньекция

Описание: Уязвимость позволяет удаленному пользователю выполнить произвольный SQL запрос в атакуемой системе.

Уязвимость существует из-за не достаточной фильтрации входных данных requestid в скрипте requests.php и не экранируемое использование принятых данных в SQL запросе.

Решение:
Открыть ./requests.php
Найти:
Код: Выделить всёРазвернуть
if ($action=='reset')
{
        $requestid = $_GET["requestid"];
        $res = sql_query("SELECT userid, filledby FROM requests WHERE id =$requestid") or sqlerr(__FILE__, __LINE__);
        $arr = mysql_fetch_assoc($res);
        if (($CURUSER[id] == $arr[userid]) || (get_user_class() >= UC_MODERATOR) || ($CURUSER[id] == $arr[filledby]))
        {
                @sql_query("UPDATE requests SET filled='', filledby=0 WHERE id=$requestid") or sqlerr(__FILE__, __LINE__);
                stderr($tracker_lang['success'],"Запрос номер $requestid был успешно сброшен.");
        }
        else
                stderr
($tracker_lang['error'],"Извините, но вы не можете сбросить данные этого запроса");

}
 

Заменить на:
Код: Выделить всёРазвернуть
if ($action=='reset')
{
    if(is_numeric($_GET["requestid"]))
    {
        $requestid = $_GET["requestid"];
        $res = sql_query("SELECT userid, filledby FROM requests WHERE id =".sqlesc($requestid)) or sqlerr(__FILE__, __LINE__);
        $arr = mysql_fetch_assoc($res);
        if (($CURUSER[id] == $arr[userid]) || (get_user_class() >= UC_MODERATOR) || ($CURUSER[id] == $arr[filledby]))
        {
                @sql_query("UPDATE requests SET filled='', filledby=0 WHERE id=".sqlesc($requestid)) or sqlerr(__FILE__, __LINE__);
                stderr($tracker_lang['success'],"Запрос номер $requestid был успешно сброшен.");
        }
        else
                stderr
($tracker_lang['error'],"Извините, но вы не можете сбросить данные этого запроса");
    }
    else
      stderr
($tracker_lang['error'],"Извините, но вы не можете сбросить данные этого запроса");
}
 
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3197
Зарегистрирован: 18 окт 2007, 02:21

Re: Уязвимости Web приложений

Сообщение Rostov114 » 26 фев 2009, 00:55

Программа: IPB 2.3.x

Опасность: Критическая

Наличие эксплоита: Да

Тип: Бэкдор, удаление файлов

Описание: Уязвимость позволяет удаленному пользователю имеющему доступ в админ панель выполнить специально сформированный запрос на удаление директории смайлов и при не правильно выставленных правах удалить все файлы форума.

Данная уязвимость существует из-за не достаточной фильтрации входных данных...форум фильтрует только ../ но ..* он пропускает спокойно что дает возможность передать скрипту команду на удаление всего форума.

Решение:
Открыть ./sources/lib/admin_functions.php
Найти:
Код: Выделить всёРазвернуть
        $file = preg_replace( "#/$#", "", $file ); 

Ниже добавить:
Код: Выделить всёРазвернуть
        $file = str_replace("..", "", $file);
        $file = str_replace(".", "", $file); 


* В *nix и Window системах .. означает подняться на директорию вверх
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3197
Зарегистрирован: 18 окт 2007, 02:21

Re: Уязвимости Web приложений

Сообщение doliar » 03 мар 2009, 04:53

Программа: Торрент-трекеры основанные на TBDev 2.0 YSE

Опасность: Критическая

Тип: SQL иньекция

Описание: Уязвимость позволяет удалённому пользователю сформировать спец. атакующий url адрес (Нескажу какой :) ) и тем самым выполнять произвольный SQL запрос.

Решение:
Открыть ./announce.php
1. Найти :
Код: Выделить всёРазвернуть
$snatch_updateset[] = "completedat = $dt"; 


1. Заменить на:
Код: Выделить всёРазвернуть
$snatch_updateset[] = "completedat = ".sqlesc($dt); 


2. Найти :
Код: Выделить всёРазвернуть
$snatch_updateset[] = "uploaded = uploaded + $uploaded2";
$snatch_updateset[] = "downloaded = downloaded + $downloaded2";
$snatch_updateset[] = "to_go = $left"; 


2. Заменить на:
Код: Выделить всёРазвернуть
$snatch_updateset[] = "uploaded = uploaded + ".sqlesc($uploaded2);
$snatch_updateset[] = "downloaded = downloaded + ".sqlesc($downloaded2);
$snatch_updateset[] = "to_go = ".sqlesc($left); 


3. Найти:
Код: Выделить всёРазвернуть
$snatch_updateset[] = "port = $port";
$snatch_updateset[] = "last_action = $dt"; 


3. Заменить на:
Код: Выделить всёРазвернуть
$snatch_updateset[] = "port = ".sqlesc($port);
$snatch_updateset[] = "last_action = ".sqlesc($dt); 
Изображение

Консультаций по TBDev через icq неосуществляю!
Аватара пользователя
doliar
Автор
 
Сообщения: 732
Зарегистрирован: 16 янв 2008, 15:05
Откуда: Саратов, Волжский р-он
Домен: tbdev-info.vfose.ru

След.

Вернуться в Компьютерная безопасность

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25

cron