![]() |
Выполнить команду на сервере
Всем привет. Возник вопросик.
Раньше на сервере выполнял команды таким методом : $result = passthru($_POST['cmmd']); Теперь админ пофиксил :( как еще можно выполнить ? OS : FreeBSD 6.3 PHP : 5.2.6 Зарание спасибо. |
Непонятно, как пофиксил:
if ((!$_POST['cmd']) || ($_POST['cmd']=="")) { $_POST['cmd']="id;pwd;uname -a;ls -la"; } echo "".passthru($_POST['cmd']).""; Тебе останется написать только html форму для скрипта ну и: http://ru2.php.net/passthru Цитата:
|
Сперва выясни в чём заключался фикс. Было ли это запрещение одной или нескольких функций, или же на сервере включили safe_mode. Выполни phpinfo() и посмотри строчку disable_functions. Если там запрещена только функция passthru() - юзай system() или exec().
Так же обрати внимание на значение параметра safe_mode, если установлен в On, значит на сервере врубили Safe Mode - пробуй заюзать какой-либо из способов обхода Safe Mode. Инфы по этой теме дофига на том же Античате. Даже если не удастся использовать ничего из вышеперечисленного, всё равно остаётся возможность производить какие-то действия средствами чистого PHP (без использования функций операционной системы), например просмотр содержимого каталогов, просмотр , редактирование или создание файлов и т.д. |
disable_functions :
Цитата:
Что можно сделать в таком случае ??? |
Попробуй заюзать popen(). Вот как-то так:
PHP код:
|
Теперь вопрос к админам!
Как можно зашитить свой сервер ? Такая ситуация : Есть хостинг на котором 50 сайтов. Каждый может выполнить ls /home cat /etc/passwd лазить по сайтам других клиентов. Как можно ограничить выполнения команд пользовательом ??? Что-бы он немог выйти за свою директорию. Спасибо большое. |
open basedir ./
safe_mode On ман по пхп.ини тебе в руки.Если ты про выполнение из пхп скриптов.Иначе- запретить доступ по ссш =))) |
А сверху накати что-нибудь типа Suhoshin и будет тебе счастье :)
|
Перекомпилить PHP без exec(); и т.п. и поднять ssh шелл, ну собсно тоже подправленный(можно даже без cd, vim и т.п.).
|
| Время: 20:23 |