Хакер #305. Многошаговые SQL-инъекции
Программа:
PHP 4.4.2, возможно более ранние версии
PHP 5.1.2, возможно более ранние версии
Обнаруженные уязвимости позволяют злоумышленнику пользователю обойти ограничения
безопасности, вызвать отказ в обслуживании и произвести XSS нападение.
1. Уязвимость существует при вызове функции phpinfo() из-за того, что функция
php_print_gpcse_array() проверяет только первые 4096 байт переменной массива.
Удаленный пользователь может с помощью специально сформированного URL, длинной
более 4096 байт, выполнить произвольный код сценария в браузере жертвы в
контексте безопасности уязвимого сайта.
Пример:
phpinfo.php?cx[]=ccccc..~4096chars...ccc[XSS]
2. Утечка памяти существует при обработке вызова функций. Локальный пользователь
может с помощью специально сформированного PHP сценария вызвать отказ в
обслуживании.
Пример:
php -r 'function cx(){ cx(); } cx();'
Segmentation fault: 11 (core dumped)
3. Уязвимость существует из-за недостаточной обработки входных данных в функции
tempnam(). Локальный пользователь может выйти за пределы open_basedir и создать
произвольное количество файлов на системе.
Пример:
# php -r 'function cx(){ tempnam("/www/", "../../../../../../var/tmp/cx"); cx();
} cx();'
/var: create/symlink failed, no inodes free
/var: create/symlink failed, no inodes free
4. Уязвимость существует из-за недостаточной проверки входных данных в функции
copy(). Локальный пользователь может с помощью специально сформированной
функции, содержащей "compress.zlib://" в имени файла обойти ограничения
безопасности safe mode и получить доступ к важным данным на системе.
Пример:
copy("compress.zlib:///etc/passwd", "/home/cxib/to/bandyta/passwd.txt");