![]() |
"опасные" функции и команды
Собственно такой вопрос - может кто-ибудь из грамотных людей перечислить все функции php и perl которые могут выполнять произвольный код, команду и прочее. Задача заключается в том чтобы проверять код файла на потенциально возможный шелл. Знаю что есть функции типа cmd , exec , eval но их наверняка больше, и всех я просто не знаю.
|
escapeshellarg - строка обрабатывается шеллом
escapeshellcmd - почти тоже самое ) exec - выполнение passthru - аналогично proc_open - выполняет комманду и открывает поинтэра файла для ввода-вывода shell_exec - комманды через bash system - опять же выполняет и выводит результат include() include_once() require() require_once() инклуд файлов |
Лучше запретить еще eval и preg_replace, файл можно прочитать и выполнить через eval, что аналогично include'у
|
угу, про eval я выше писал. А preg_replace разве может как-то использоваться злонамерно? Не знал.
Спасибо обоим! |
PHP код:
|
Цитата:
http://phpclub.ru/manrus/f/popen.html |
proc_open в отличие от popen открывает 2 хендлера - на чтение и на запись.
|
ShAnKaR именно proc_open, т.е аналог stream_select() но также выполняющий любые комманды..
синтаксис вроде proc_open ( цмд , дескрипторы строки , куча еще всего ) ну и popen в принципе тожно можно счиатать за "опасную ф-ю" Код:
<?php |
echo
Опасна лишь при таком использовании: PHP код:
|
Perl:
open(FILE_DESCRIPTOR,FILE_NAME); # при подставлении пайпа в имя файла - исполнит его Пример уязвимого кода: Код:
my($key,$value)=split('=',$ENV{QUERY_STRING});и получаем текущий ид eval(CODE); # при подставлении ';CODE'в фильтрующуюся переменную которую задает клиент - исполнит код. Пример уязвимого кода: Код:
my($key,$value)=split('=',$ENV{QUERY_STRING}); |
| Время: 21:01 |