HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Сценарии/CMF/СMS
   
 
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 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 Сценарии/CMF/СMS 167 17.10.2019 18:14
[Обзор уязвимостей в форумных движках] Grey Сценарии/CMF/СMS 49 02.04.2015 17:48
Уязвимость в Simple machines smf 1.0 beta 5 public Nemirof Сценарии/CMF/СMS 0 23.10.2004 00:47
Вопрос про уязвимости в Simple machines forum Сценарии/CMF/СMS 4 27.08.2004 14:09



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


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




ANTICHAT.XYZ