phpinfo.php: невероятно, но факт

    Дело было вечером, делать было нечего. Написал скрипт для поиска файлов phpinfo.php. Было исследовано 36,804 сайтов Рунета, на 1,725 нашёлся файл phpinfo.php с функцией phpinfo (~4.69%).

    Как видно, не все вебмастера знают простую истину – взлом сайта начинается со сбора информации о сервере.

    Аналогичная проверка зарубежных сайтов показала, что наши иностранные коллеги более благоразумны: исследовано 166,652 сайтов, phpinfo.php обнаружен на 3,923 (~2,35%).

    %username%, а ты удалил файл phpinfo.php (temp.php, test.php) со своего сайта?

    Побочный результат исследования, статистика версий PHP
    Версия Рунет Буржунет
     5.3.3 23 1.33% 66 1.68%
     5.3.2 28 1.62% 51 1.3%
     5.3.1 5 0.29% 13 0.33%
     5.3.0 2 0.12% 11 0.28%
     5.2.14 134 7.77% 771 19.65%
     5.2.13 85 4.93% 380 9.69%
     5.2.12 199 11.54% 188 4.79%
     5.2.11 71 4.12% 128 3.26%
     5.2.10 147 8.52% 87 2.22%
     5.2.9 84 4.87% 262 6.68%
     5.2.8 41 2.38% 106 2.7%
     5.2.7 1 0.03%
     5.2.6 166 9.62% 301 7.67%
     5.2.5 64 3.71% 114 2.91%
     5.2.4 46 2.67% 75 1.91%
     5.2.3 13 0.75% 22 0.56%
     5.2.2 6 0.35% 14 0.36%
     5.2.1 9 0.52% 25 0.64%
     5.2.0 31 1.8% 38 0.97%
     5.2 2 0.12%
     5.1.6 100 5.8% 240 6.12%
     5.1.5 1 0.03%
     5.1.4 5 0.29% 18 0.46%
     5.1.2 10 0.58% 20 0.51%
     5.1.1 1 0.06% 2 0.05%
     5.1.0 1 0.03%
     5.1 3 0.08%
     5.0.5 3 0.17% 17 0.43%
     5.0.4 5 0.29% 19 0.48%
     5.0.3 6 0.15%
     5.0.2 1 0.03%
     5.0.0 1 0.03%
     4.4.9 179 10.38% 375 9.56%
     4.4.8 35 2.03% 79 2.01%
     4.4.7 24 1.39% 77 1.96%
     4.4.6 1 0.06% 15 0.38%
     4.4.5 4 0.1%
     4.4.4 60 3.48% 78 1.99%
     4.4.3 5 0.29% 7 0.18%
     4.4.2 11 0.64% 17 0.43%
     4.4.1 11 0.64% 11 0.28%
     4.4.0 2 0.12% 13 0.33%
     4.3.11 13 0.75% 63 1.61%
     4.3.10 39 2.26% 69 1.76%
     4.3.9 46 2.67% 68 1.73%
     4.3.8 1 0.06% 2 0.05%
     4.3.6 1 0.06% 3 0.08%
     4.3.5 1 0.03%
     4.3.4 2 0.12% 17 0.43%
     4.3.3 11 0.28%
     4.3.2 9 0.52% 13 0.33%
     4.3.1 1 0.06% 2 0.05%
     4.3.0 1 0.06% 2 0.05%
     4.2.3 2 0.12% 5 0.13%
     4.2.2 6 0.15%
     4.1.2 2 0.12% 2 0.05%
     4.1.1 1 0.03%
     Итого 1725 3923


    Список российских сайтов взят из Яндекс.Каталога, список зарубежных сайтов из DMOZ.

    UPD. Немного обобщенной статистики.
    В Рунете из 1,725 сайтов register_globals включен на 941 (~54.5%), safe_mode на 106 (~6,1%)
    В Буржунете из 3,923 сайтов register_globals включен на 1,457 (~37.1%), safe_mode на 195 (~5%)
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 105

      +5
      это не самое страшное
      Попробуйте пройтись и проверить наличие файлов svn–commit.tmp
      Из которых можно собрать гораздо больше ценной информации
        0
        Подумал, полез на свой сервачок, нашел один такой файл:)
        Правда назывался от не phpinfo.php.
        Посмотрел, что в этом списке, не нашёл ничего криминального и любопытного, но удалил.
        • UFO just landed and posted this here
            0
            > Server API FPM/FastCGI

            они тоже отказались от апача…
              0
              Кстати, а что с фтп? Я как-то в современных проблемах безопасности не шибко продвинут.
                0
                Он ОЧЕНЬ старый и совершенно не секьюрный — снифается на ура. Посмотрите в сторону SFTP хотя бы.
                  0
                  Не все хостинги еще поддерживают SFTP/SCP, поэтому VDS — наше все
                    +5
                    да побоку что снифается. особенно на промежуточных роутерах.
                    ибо это угроза слишком маловероятна и «теоретическая» в реальности.

                    пароли уводят троянами, что воруют сохраненные пароли и перехватывают вводимые при конекте.
                    впрочем такие трояны перехватывают не только фтп.

                    PS: да, я знаю о чем говорю.
                      0
                      занимаетесь? ;)
                        0
                        — А ты что, коп? — очередной американский фильм.
                        0
                        Да, я знаю о чем вы говорите :)
                        И знаю, что вы правы. И всё же считаю нужным по возможности использовать SFTP/SCP. Ибо иногда хочется иметь возможность быстро залезть на сервер через открытый вай-фай. Пусть шанс, что конкретный спот снифается — малы, но «цена ошибки» тут слишком высока.
                          0
                          Через открытый wi-fi нужно ходить через vpn, чтобы потом не было сюрпризов :)
                            0
                            Тоже верно. Но VPN-доступ есть не всегда.
                        0
                        HTTP видимо верх секъюрности :).
                          0
                          В админки своих проектов лазаете по HTTP? )
                    0
                    +1
                    есть много вариаций названия файла и он может находится не в корневой папке.

                    Да и яйца присутствуют: habrahabr.ru/blogs/php/88966/
                      +22
                      Заголовок ещё желтее придумать не получилось?
                        +8
                        «Каждый 21-ый сайт из яндекс.каталога поддается взлому!»
                        +1
                        А PHP 5.3 всего около 3%, казалось, уже больше будет.
                          +1
                          Интереснее другое — доля php4 всё ещё 24-25%. Рано хостингам и разработчикам отказываться от поддержки php4.
                            +3
                            Вот именно потому что не отказываются хостинги и сайты не переезжают. Многие сами не обновляют надеются на админов хостинга, а они даже на платных не всегда достаточно ответственно подходят к этому вопросу.
                              +2
                              Многие сайты не обновлялись последние несколько лет. Им просто незачем менять версии php.
                                0
                                Во многих старых версиях php есть уязвимости (иногда критические, иногда не очень). Поэтому разумно обновляться до свежих версий в своей линейке (4.4 или 5.2).
                                  +10
                                  Да все просто. Лет пять назад Вася Пупкин написал компании сайт на php 4.3. Он работает и даже иногда туда заносят новости. Вопрос кто и зачем должен мониторить актуальность версий php?

                                  — Хостер — а вдруг что-то отвалится. Нафиг связываться не хочет.
                                  — Вася Пупкин — получил денег и забыл давно.
                                  — Девочка маркетолог из компании — не представляет что такое php.
                                  — Кулхацкер, который узнал что там устаревшая версия… Ему нафиг этот сайт-визитка нужен

                                  Не все же гики… Кстати, последняя typo3 вроде совместима с php 4.x
                                0
                                есть сервер где ещё стоит freebsd 4 и 5 версии. И это стоит у вполне приличных хостеров… которые пишету о защищённости своей системе и т.д.
                              0
                              ох уж этот test.php, надо делать постоянный ip дома себе, и проверять на сервере
                                +4
                                PHP 5.1.6 — 5.8%
                                CentOS 5. :)
                                  0
                                  а 5.2.10 это centos 5 testing
                                    0
                                    5.2.10 можно часто встретить и самосборные.
                                    А 5.1.6 выдает ОС с потрохами.
                                • UFO just landed and posted this here
                                    +3
                                    Я сделал проверку только на phpinfo.php. На test.php и temp.php не проверял из морально-этических соображений — эти скрипты могут содержать потенциально опасный (для сайта) код.
                                      0
                                      Ещё любят называть php.php
                                        +1
                                        Еще нужно добавить info.php
                                          0
                                          Ну, по крайней мере на info.php, _phpinfo.php, _info.php, phpinfo_.php, info_.php точно можно было бы проверить.
                                            0
                                            delete-production.php :)
                                              +1
                                              killall-9.php
                                        0
                                        А я всегда создаю файл _phpinfo.php ;)
                                          0
                                          ещё install.php поищите!
                                            0
                                            какой резон создавать файл phpinfo — разок создал, посмотрел конфиги пхп, подключенные модули, затем удалили и никогда он не понадобится
                                              0
                                              phpphp.php или php.php
                                              а также, asd.php, asdf.php, 123.php, test1.php

                                              я обычно так делаю )
                                                0
                                                а как же qqq.php?
                                                +2
                                                А info.php?
                                                  –2
                                                  За такое сканирование провайдер не прикроет абонента?
                                                    +1
                                                    А что здесь противозаконного?
                                                      0
                                                      Я не знаю, поэтому и спрашиваю. Просто помню, что 10 лет назад провайдер отключал за сканирование расшареных ресурсов в сети, это ещё когда карты доступа для модемов были.
                                                        +1
                                                        Это не то сканирование — просто запрос файла и анализ ответа сервера.
                                                          0
                                                          Если я запрошу этот файл у 100.000 сайтов — то всё ок, но если я запрошу 100.000 файлов на одном сайте — то всё плохо?
                                                            +1
                                                            Да запрашивайте на здоровье. Только про паузу не забудьте между запросами.
                                                            Именно этим и занимаются все поисковые машины.
                                                              0
                                                              Какую обычно паузу ставят? Мне всегда было интересно провести подобное исследование.
                                                              У поисковых машин свои выделенные сервера, а если я буду это делать со своей машины — могут возникнуть вопросы. Потом доказывай, что я соц. исследование проводил.
                                                                0
                                                                Если за сайтом следит адекватный сисадмин, то выкачать много страниц с одного IP вы не сможете, независимо от паузы.
                                                                Не рекомендую делать больше 1 запроса в 5 секунд, иначе положите сайт ДоСом :)

                                                                З.Ы. Воровать контент — плохо.
                                                                  –2
                                                                  вы просканировали 200 тыс. сайтов со своего домашнего компа? неужели провайдер смотрит на такие действия совершенно спокойно?
                                                                    +4
                                                                    Не просканировал, а скачал 200 тысяч страниц. В этом нет ничего криминального. Суммарный трафик всего 1 гигабайт.
                                                                      0
                                                                      Немало получилось (для веб-краулера) :)
                                                                        +1
                                                                        ~50 строчек php-кода (с комментариями, логом и т.п. красивостями), запускается в 15-20 потоков и неспешно работает.
                                                              0
                                                              teleport pro внезапно появляется на сцене.
                                                      +5
                                                      Кстати, не буду убирать файлы. Ничего сверхсекретного там нету.

                                                      На куче моих серваков они есть и ничего :-)
                                                      Если это shared хостинг, так там phpinfo вообще чаще всего публичная информация.
                                                        0
                                                        Тут статья проскакивала, были доступны .svn файлы, и авторы топика получили исходники множества крупных сайтов. Вот это реально круто, да.
                                                          +1
                                                          Просканируйте еще на домен.ру/phpmyadmin/setup/
                                                            0
                                                            Я один токо создаю такой файл с именем @.php?
                                                              +17
                                                              да
                                                              +3
                                                              0
                                                              Делал раньше так php.info.php
                                                                0
                                                                я вот ща одному сайту БД конвертирую, так на их старом сайте в каждом каталоге лежит php.ini :)
                                                                а каталогов у них ойойой :)
                                                                  0
                                                                  Вы, наверное, не сталкивались с suexec/suphp. Иначе бы не удивлялись.
                                                                  +2
                                                                  i.php
                                                                    +1
                                                                    Да ладно, нашли тоже уязвимость.

                                                                    Вот некоторые веб-мастера предоставляют пользователям всякие свистящие WYSIWYG редакторы c кучей плагинов и запрещают закачку исполняемых файлов. При этом, как правило, запрещено расширение *.php, и, как правило, без проблем грузится .php5.

                                                                    Я удивился, но оказывается многие даже не подозревают, что файл может иметь расширение phpn, где n — версия php, и успешно выполняться на сервере.

                                                                    Что можно сделать если загрузить свой php на сервер говорить думаю не стоит.
                                                                      0
                                                                      открою страшну тайну…
                                                                      не только .php5, а еще например .shtml и тд
                                                                        0
                                                                        я вот ни .php ни .php5 не запрещаю.

                                                                        потому что надо скрипт сайта ложить выше корневой папке, а папку с аплоадсами отдавать без возможности выполнения
                                                                          0
                                                                          просто не надо оставлять загруженным файлам оригинальные имена (или хотя бы расширения)
                                                                        +2
                                                                        if(!empty($_REQUEST['key'])&&'xx7D91eIf3zJ8gnZ2anvGLvx'==$_REQUEST['key']){phpinfo();}
                                                                          0
                                                                          а чем плохо? лучше ведь чем просто голый phpinfo. спрятанный только «секретным адресом»
                                                                            0
                                                                            нашли что прятать…
                                                                              0
                                                                              Адрес может быть и не секретным, а ключик может просто жить в куках.
                                                                            0
                                                                            Храню phpinfo.php на сервере, а так-же test.php но в нём только одна строчка exit, сам не помню что там было и почему он остался…

                                                                            Боюсь ли взлома?
                                                                            Нет, дыр очевидных в моих скриптах нет (там слишком мало скриптов и они слишком простые чтоб можно было допустить в них дырки) а через дыры ОС (если таковые есть) взломать можно не зависимо от информации из phpinfo()
                                                                              +1
                                                                              Любопытная статистика.
                                                                              Однажды я решил поискать сколько symfony проектов лежит на продакшен серверах с открытым web-дебагом. Статистика, знаете-ли была не менее любопытной. (хинт: g inurl:frontend_dev.php -source -browser)
                                                                                +3
                                                                                Немного обобщенной статистики.
                                                                                В Рунете из 1,725 сайтов register_globals включен на 941 (~54,5%), safe_mode на 106 (~6,1%)
                                                                                В Буржунете из 3,923 сайтов register_globals включен на 1457 (~37,1%), safe_mode на 195 (~5%)
                                                                                  +1
                                                                                  Вы бы лучше пост дополнили статистикой.
                                                                                    +1
                                                                                    Добавил, спасибо за подсказку.
                                                                                  0
                                                                                  Каждый день наблюдаю, как кто-то перебирает папки на сервере admin, phpmyadmin и т.д. )
                                                                                    0
                                                                                    Вот!

                                                                                    Самое ужасающее что может быть, так это: admin;admin.
                                                                                      0
                                                                                      Во всём можно найти позитив. У меня практически на каждом сайте есть папка admin с формой авторизации и сообщением в духе «твой IP записан, суши сухари». Забавно читать логи брутфорса этой формы.
                                                                                    +1
                                                                                    думаю стоит создавать phpinfo.php в корне но не с phpinfo(), а с html кодом phpinfo с денвера — пусть помучаются.
                                                                                      0
                                                                                      Можно ещё от души порезвиться с содержанием html-кода phpinfo(). Я как то писал скрипт, который рандомом заполнял строки.
                                                                                        0
                                                                                        Можно еще на 22 порт повесить honeypot со сбором инфы о взломщике, вплоть до трейсрутов и ip логов действий, а потом слать куда надо. Ботов поймаете только так :). Будут думать, что в реальном шелле под рутом сидят :D
                                                                                          0
                                                                                          LOL! Тогда уж логически продолжить идею. Пусть «псевдошелл» и реагирует «нужным» образом, например, на rm -rf напишет, что так и сделал! ))
                                                                                            0
                                                                                            Это я и имел ввиду под honeypot :)
                                                                                      +1
                                                                                      Кстати недавно поисследовал пару разных известных php-шеллов, на предмет используемых функций.
                                                                                      Хочу поделиться с хабрасообществом отключённых списком функций, которые я посчитал не нужными.

                                                                                      disable_functions = «phpinfo, apache_child_terminate, posix_getpwuid, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd, eval, exec, fp, fput, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_get_all, ini_restore, inject_code, mysql_pconnect, openlog, passthru, php_uname, phpAds_remoteInfo, phpAds_XmlRpc, phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, system, syslog, xmlrpc_entity_decode, shell_exec, getmyuid, getmygid, get_current_user, php_uname, diskfreespace, disk_total_space, posix_geteuid, posix_getegid»

                                                                                      Прописывается в php.ini
                                                                                      Так же включил safe_mode для пущей верности. Надеюсь кому-нибудь поможет =) По крайней мере dle и несколько других движков с таким набором функций работает.
                                                                                        –1
                                                                                        Кстати phpinfo тоже отрубил =) Нафиг нужна)
                                                                                          0
                                                                                          Интересно иногда узнать какие модули подключены.
                                                                                            0
                                                                                            Ну мне это не часто бывает интересно =) тем более можно посмотреть по конфигам что подключено.
                                                                                            +2
                                                                                            Господа минусующие, вы хоть объясните свою позицию, в чём я не прав? За что минус?
                                                                                            Не надо выключать функции? Или phpinfo в продакше — нужная вещь? Или я слишком параноидален?
                                                                                              0
                                                                                              Хоть и не минусовал, но моё ИМХО — писать надо нормально, а не функции отключать.
                                                                                              Да и сама статья — полная лажа поскольку к безопасности отношения не имеет никакого. Ещё бы догадались чекать X-Powered-By/expose_php
                                                                                                –2
                                                                                                Статья к безопасности косвенно относится — ведь посмотрев phpinfo, опытный взломщик может определить точки уязвимости, которые не очевидны. Неопытному это, конечно, не поможет.

                                                                                                Такое ощущение, что не все поняли смысл отключения функций. Ещё раз попробую объяснить — отключение, нужно для того, чтоб различные возможные php шелл-коды не смогли работать, в случае взлома, — это обезопасит от взлома, по крайней мере в какой-то степени.

                                                                                                «писать нормально» — это относится к языку php, поскольку функции встроены в php. Переписывать php слегка затруднительно. А к продуктам это не относится, поскольку все php-движки, которые по крайней мере у меня есть — вполне комфортно себя чувствуют без отключенных функций.

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

                                                                                                Вообще честно говоря имхо эти функции должны быть отключены по умолчанию.
                                                                                                  0
                                                                                                  ведь посмотрев phpinfo, опытный взломщик может определить точки уязвимости, которые не очевидны
                                                                                                  Опытный взломщик (которому надо) определит точки уязвимости и без этой картинки. Максиму, это займёт у него немного больше времени.
                                                                                                  «писать нормально» — это относится к языку php, поскольку функции встроены в php. Переписывать php слегка затруднительно.
                                                                                                  Если честно, то не понял о чём это написано.
                                                                                                  Писать нормально — значит нормально писать свой код, чтоб до этих функций не мог добраться злоумышленник.

                                                                                                  Вообще, информационная безопасность — понятие комплексное и одним отключением функций не решается.
                                                                                                    0
                                                                                                    Ну никто не мешает дополнительно обезопаситься — ведь все люди человеки и допускают ошибки.
                                                                                          +1
                                                                                          это просто ребята хвастаются серваками!
                                                                                            0
                                                                                            хм, я почему-то уже лет 8 называю файл pi.php )
                                                                                              –5
                                                                                              Даже такой сервис, как about.me не спрятал свой phpinfo.php :)
                                                                                                +2
                                                                                                Need PHP guru? anton@antonbabenko.com

                                                                                                Пиарите сами себя, Антон? Ай-яй-яй.
                                                                                                0
                                                                                                Помнится в phpinfo() несколько лет назад даже находили XSS уязвимость: www.securityfocus.com/bid/15248/exploit
                                                                                                  0
                                                                                                  XSS и без этого много где встречается
                                                                                                  возьмите 10 совершенно случайных сайтов и проверьте :)
                                                                                                  0
                                                                                                  Взлом сайта начинается с существования сайта. Все немедленно удалите свои сайты! Отключите питание серверов! Рубите сетевые кабели!

                                                                                                  Only users with full accounts can post comments. Log in, please.