HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Уязвимости CMS / форумов
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 16.04.2009, 00:59
[underwater]
Познающий
Регистрация: 29.03.2009
Сообщений: 87
С нами: 9010027

Репутация: 308
По умолчанию

http://forum.antichat.ru/showpost.php?p=1047861&postcount=31

Пришлось иметь дело с данным скриптом, действительно корявый, возможные решения проблемы:

Код:
	$topic = (int)$_GET['t'];
	$board = (int)$_GET['b'];
	$user = (int)$_GET['u'];
	$tpage = (int)$_GET['p'];
Целые пройти, чтобы избежать проверки данных

Код:
	$other = preg_replace('|[^a-z0-9_=,;/\-.]|i', '', $_GET['o']);
	$action = preg_replace('|[^a-z0-9_=,;/\-.]|i', '', $_GET['a']);
	$param = preg_replace('|[^a-z0-9_=,;/\-.]|i', '', $_GET['param']);
Фильтр только для допустимых регулярок для SMF

А тут делаем проверку на соответствие тем:
Код:
function seo_verifica_permisos($id, $tipo){
		global $user_info, $db_prefix;
		if(!$id = (int)$id){
			return false;
		}
		if($user_info['is_admin'] == '1'){
			return true; //Если админ права по умолчанию
		}
		if($tipo == 'board'){
			if($request = @db_query("
					SELECT memberGroups
					FROM {$db_prefix}boards 
					WHERE ID_BOARD = {$id} 
					LIMIT 1", __FILE__, __LINE__)){
					if($row = @mysql_fetch_assoc($request)){
						mysql_free_result($request);
					}
			}
			if(!$permisos = @explode(',', $row['memberGroups'])){
				if(!$permisos = (int)$row['memberGroups']){ 
					return false; 
				}
			}
			foreach($permisos as $valor){
				if($valor == $user_info['groups'][0]){
					return true; 
				}
			}
			return false; 
		}elseif($tipo == 'topic'){
			if($request = @db_query("
				SELECT ID_BOARD
				FROM {$db_prefix}topics 
				WHERE ID_TOPIC = {$id} LIMIT 1", __FILE__, __LINE__)){
				if($row = @mysql_fetch_assoc($request)){
					mysql_free_result($request);
				}
			}
			if(seo_verifica_permisos((int)$row['ID_BOARD'], 'board')){
				return true; 
			}else{
				return false; 
			}
		}else{
			return false;
		}
	}
Ну собственно небольшой патч, если "это" так можно назвать(простите за грамматические ошибки и лексически не правильно построенные фразы, час ночи, спать охота).Собственно ссылки:
http://dump.ru/file/2460593
http://slil.ru/27454401

Пароль: underantichat?!
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Обзор уязвимостей vBulletin] bandera Уязвимости CMS / форумов 167 17.10.2019 18:14
[Обзор уязвимостей в форумных движках] Grey Уязвимости CMS / форумов 49 02.04.2015 17:48
Уязвимость в Simple machines smf 1.0 beta 5 public Nemirof Уязвимости CMS / форумов 0 23.10.2004 00:47
Вопрос про уязвимости в Simple machines forum Уязвимости CMS / форумов 4 27.08.2004 14:09



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.