![]() |
Как правильно экплаутировать?
Есть код интересует exec.
И откуда берется переменная __FILE__ ? PHP код:
|
у тебя эта строчка закоментированна
//mkdir(dirname(__FILE__).'/_cnf/'.$_GET['url'],0777); создает директорию, где dirname это директория на хосте, __FILE__ скорее всего это какая то константа, дальше еще одна папка и файл, и выставляются чмоды. Из манов: mkdir ("/path/to/my/dir", cmod); У тя где то в скриптах должно быть такое define ("_FILE_", "samehit.php"); |
http://php.ru.manual.osdevel.com/language.constants.predefined.html
|
Еще раз интересует exec()
|
я думаю из [DOCUMENT_ROOT]
вот например при открытии файла if($fp = @fopen(dirname(__FILE__).'/_cnf/unknown/config.inc','w')) имя каталога она берёт из _FILE_ потом добавляет адрес нужного файла. |
C exec ты ничего не поделаешь зато в конфиг можешь записать php код . config=1&theme=';eval($_REQUEST['c']);# если конечно ковычки не эскейпятся
|
2gibson это предопределенная интепретатором константа.
>> include_once dirname(__FILE__).'/cmd.php'; ну мы же не знаем чего в cmd.php находится, а там как раз и идет определение массива $cmd. зы я бы на твоем месте смотрел, что у нас в первом if идет) зыы ужасные исходники |
[ cash ], константа __FILE__ является одной из предопределённых констант и всегда резолвится в полный путь до текущего файла, т.е. в нашем случае данная константа резолвится в полный путь к этому бажному скрипту. Что касается exec - в данном случае мы ничего поделать не можем, т.к. единственный параметр, который содержит выполняемую команду это $CMD и он обнуляется ($CMD = array()) перед использованием. Как правильно заметил Гема, в данном случае единственное само-собой напрашивающее действие - проинжектить параметры и прописать в конфиг свой php-код. То есть уязвимые параметры у нас: theme, sem, sh, pr. Можно использовать любой из них. Единственное - если на серваке включены magic_quotes это может обернуться для нас проблемой и лишит ряда удобств. Вот пример вызова этого скрипта:
Цитата:
|
В cmd.php и есть масив с командами.
PHP код:
Цитата:
Тоесть как я понял внедрить в массив CMD свою команду не реально? И сам конфиг не куда не инклудиться... он всего лишь остаток скрипта который забыли удалить... |
Ну ничто не мешает открыть конфиг тебе, если парсится расширение inc и он доступен через веб. В массив CMD влезть нереально, так как он жёстко забит в файле и нету никакого интерфейса общения с ним.
|
| Время: 23:26 |