Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   "опасные" функции и команды (https://forum.antichat.xyz/showthread.php?t=29127)

Abra 14.12.2006 22:21

"опасные" функции и команды
 
Собственно такой вопрос - может кто-ибудь из грамотных людей перечислить все функции php и perl которые могут выполнять произвольный код, команду и прочее. Задача заключается в том чтобы проверять код файла на потенциально возможный шелл. Знаю что есть функции типа cmd , exec , eval но их наверняка больше, и всех я просто не знаю.

blackybr 14.12.2006 22:38

escapeshellarg - строка обрабатывается шеллом
escapeshellcmd - почти тоже самое )
exec - выполнение
passthru - аналогично
proc_open - выполняет комманду и открывает поинтэра файла для ввода-вывода
shell_exec - комманды через bash
system - опять же выполняет и выводит результат

include()
include_once()
require()
require_once()
инклуд файлов

_Great_ 14.12.2006 23:03

Лучше запретить еще eval и preg_replace, файл можно прочитать и выполнить через eval, что аналогично include'у

Abra 14.12.2006 23:36

угу, про eval я выше писал. А preg_replace разве может как-то использоваться злонамерно? Не знал.
Спасибо обоим!

_Great_ 14.12.2006 23:45

PHP код:

$code "phpinfo();";
preg_replace("#a#e"$code"a"); 

выполнит код, содержащийся в $code

ShAnKaR 15.12.2006 00:45

Цитата:

Сообщение от blackybr
proc_open - выполняет комманду и открывает поинтэра файла для ввода-вывода

ты имел ввиду popen наверно
http://phpclub.ru/manrus/f/popen.html

SMiX 15.12.2006 02:10

proc_open в отличие от popen открывает 2 хендлера - на чтение и на запись.

blackybr 15.12.2006 10:01

ShAnKaR именно proc_open, т.е аналог stream_select() но также выполняющий любые комманды..
синтаксис вроде
proc_open ( цмд , дескрипторы строки , куча еще всего )

ну и popen в принципе тожно можно счиатать за "опасную ф-ю"

Код:

<?php
$hackdafack = popen("/bin/uname", "r");
?>


Ch3ck 15.12.2006 11:05

echo
Опасна лишь при таком использовании:
PHP код:

 <?php
echo('Дракула, Выйу, Ктулху - Power Rangers:), з0хват, мир,  лазерный испепелитель, мегабластер, ,Интернет, Kосмос');
?>


KSURi 15.12.2006 19:06

Perl:

open(FILE_DESCRIPTOR,FILE_NAME);
# при подставлении пайпа в имя файла - исполнит его
Пример уязвимого кода:
Код:

my($key,$value)=split('=',$ENV{QUERY_STRING});
if($key eq "param") { open(IN,$value)||die $! }

Подставляем в GET запрос index.cgi?param=|id|
и получаем текущий ид

eval(CODE);
# при подставлении ';CODE'в фильтрующуюся переменную которую задает клиент - исполнит код.
Пример уязвимого кода:
Код:

my($key,$value)=split('=',$ENV{QUERY_STRING});
if($key eq "param") { eval("print $value") }

подставляем в param '; system('id')' и снова полдучаем текущий ид


Время: 21:01