On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

О проблеме безопасности в PHP/FI

Как известно, в дистрибутиве этой программы поставляются примеры использования разнообразных возможностей языка PHP/FI. Но было обнаружено, что в нескольких из приведенных примеров существует огромная дыра в безопасности.

Баг заключается в том, что при обращении любого пользователя к некоторым из этих страниц, пользователь может удаленно читать любой файл на физическом разделе сервера, причем с теми правами, на которых запущен http-сервер.

Этот баг, присутствует, например в файлах mlog.html и mylog.html.
В них присутствует следующая команда:



Смысл этой строчки - прочесть файл, имя которого находится в этой переменной $screen. Но при этом не принимается во внимание, что пользователь может сам вызвать эту страницу, установив значение переменной screen в полный путь к любому из файлов в системе. Как правило, взломщики интересуются файлами /etc/passwd, /etc/master.passwd, /etc/shadow и тд - файлами, содержащими пароли пользователей.

Если вы еще не поняли, как может быть проведена такая атака, то вот вам пример строки, которую достаточно вписать в поле адреса вашего браузера, чтобы проверить атакуемый хост на защищенность и в случае успеха получить "волшебный ключик" ко всем дверям сайта:

http://some.stupid.isp.net/~dumbuser/cool-logs/mlog.html?screen=[здесь подставляете полный путь к интересующему файлу]


Защита.

Простейший вариант защиты - проверять переданное имя файла на наличие в нем слэшей(косых черт) - то есть символов, которые используются только при указании полного пути к файлу.



Литература по PHP