Почему не стоит держать на сайте доступный для всех файл с phpinfo()

Тема в разделе "Статьи", создана пользователем error_, 19 дек 2009.

  1. error_
    error_ Guest
    Нередко на веб-сайтах можно обнаружить php-файл содержащий одну-единственную php-функцию - phpinfo(). К тому же, файл этот обычно лежит в открытом доступе и имеет легкоподбираемое имя, например, phpinfo.php. При аудите веб-сайтов я постоянно встреачаю подобное и всегда рекомендую владельцам сайтов удалить/спрятать/переименовать этот файл. Почему?

    Во-первых, это наверное всем известно, информация, содержащаяся в выводе phpinfo() нередко может помочь взломщику провести другие веб-атаки (например, из phpinfo() можно узнать полный путь до "DOCUMENT_ROOT" и использовать это при наличии sql-инъекции с чтением файлов, и т.д.).

    [​IMG]​

    Но phpinfo() опасна не только этим. Сама по себе эта функция в некоторых версях PHP содержит ошибки, которые можно использовать для проведения XSS. Поискав в гугле можно найти несколько оповещений об XSS-уязвимостиях в phpinfo():

    • PHP XSS exploit in phpinfo() by Silent Needle

    • PHP 4.4.3 - 4.4.6 phpinfo() Remote XSS Vulnerability by Stefan Esser

    • phpinfo() Cross Site Scripting PHP 5.1.2 and 4.4.2 by Maksymilian Arciemowicz

    • Тут китайцы показывают как можно провести атаку на IE7 через phpinfo() методом Algol'а

    Код:
    http://vuln.site/status/index.php?action=phpinfo&xss[ ]=%3Cscript%3Ealert(/hi, i am xss!/)%3C/script%3E
    Набрав в гугле запрос

    "php version" inurl:status/index.php?action=phpinfo

    можно быстро найти с десяток сайтов с WHMCompleteSolution и уязвимыми версиями PHP.
    Кстати, XSS в phpinfo() можно использовать для обхода HTTPOnly, ведь содержимое cookies выводится на странице, и их можно взять из нее, не используя метод cookies:

    Код:
    http://vuln.site/phpinfo.php?xss[ ]=%3Cscript%3Ealert(document.getElementsByTagName('*')[xxx].innerHTML)%3C/script%3E
    Значение 'xxx' в данном примерe - это номер элемента массива, возвращаемого методом getElementsByTagName, содержащий значение cookies.

    • Author: cr0w​
     
    19 дек 2009
Загрузка...