php phpinfo не работает

Почему не работает PHP?

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Сначала открывал html файл (либо php файл) в блокноте и вставлял туда PHP-код. Затем я пытался открыть данный файл в браузере. И что я видел? Разумеется, лабуду и никакого выполнения PHP-скрипта. А если это был PHP-файл, то мне предлагалось его сохранить на компьютер. Знакома ситуация? Если да, то сейчас Вы узнаете, почему так происходило и что надо сделать, чтобы PHP стал работать.

Дело в следующем: HTML, CSS и JavaScript обрабатываются браузером, поэтому мы легко могли создать простой HTML-файл и добавить туда код всех трёх языков. Однако, PHP обрабатывается не браузером (это ключевой момент), а интерпретатором PHP. Следовательно, нужен именно он. Также нужен файл настроек PHP, библиотеки и прочее. И вот только тогда всё заработает. Теперь вопрос: как это всё найти? Есть два способа: либо собирать всё вручную (это реально и не так сложно), либо пойти более простым путём и установить уже готовый пакет.

Я Вам советую двигаться именно по второму пути, то есть установить готовый пакет, в который входят: сервер Apache, SMTP сервер, MySQL, Perl и, разумеется, PHP. Такой пакет существует и называется он Denwer. Скачать его можно здесь: http://denwer.ru.

Установить его очень просто. Просто следуйте инструкциям.

Теперь запустите сервер (если он по каким-либо причинам не запустился), и, наконец, можете открыть, например, этот файл: «home/test1.ru/www/index.php«. И вставить туда Ваш PHP-код. И когда Вы введёте в браузере следующий адрес: «http://test1.ru«, то увидите результат выполнения Вашего PHP-скрипта.

Кстати, если сервер не запускается, то в 99% случаях виноват антивирус и/или firewall. Проблема в том, что иногда они блокируют изменения файла hosts в Windows, поэтому постарайтесь отключить контроль за этим файлом в настройках антивируса. А если не получается, то на момент запуска сервера отключите антивирус.

В следующей статье я расскажу о том, как создавать домены и поддомены в Denwer. Также обязательно расскажу о файле hosts в ОС Windows, так как об этом очень важно знать любому, кто занимается созданием сайтов, используя пакет Denwer (да и другие пакеты тоже).

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Комментарии ( 73 ):

А скоко примерно МБ занимает этот Denwer при скачивании? Просто у меня с инетом напряг! И еще: когда создаешь сайт в Denwer, то в это время комп должен быть подключён к интернету или нет.

Denwer весит 6.1 МБ. Для создания сайта на Denwer Интернет не нужен.

Меня очень интересует следующий вопрос. Все лучшие сайты и коды уже написаны. Чтобы добится таких-же результатов как конкуренты, нужно очень много времени и не только. А какие шансы у простого смертного, который изучил php, MySQL и т.д. (на среднем уровне), устроиться на работу в уже расскрученные сервисы или порталы? И на какие должности? И возможно ли такое? Какие шансы??

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

Михаил, и меня такая проблема: написал код для вытаскивания статьи из БД по примеру как у вас в уроке по PHP, после чего проверил все ли совпадает. Все было правильно, но когда я зашел на страницу в браузере, поле, где статьи должни были отабражаться, осталось пустым! Подскажите в чем проблема! P.S. если будет нужно я могу предоставить участки кода. с ув. Алекс

Очень Вам благодарен. У меня была вторая ошибка. Вы оказываете величайшую помощь всем «чайникам» и достойны всяких похвал!

Источник

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Ну разные версии от того что явно у вас установлено несколько версий PHP

А по поводу cli, то вопрос в том какой симлинк в /usr/bin/php
Покажет на какой бинарник ссылается php и это соотв-но можно поменять
readlink /usr/bin/php

Если не нужно несколько версий PHP то я бы удалил лишниюю версию и изменил настройки веб сервера (apache) чтобы использовалась правильная версия.
Если этот вариант не подходит, то можно запускать правильную версию php дёргая правильный бинарник
find /usr/bin/php*

Проблемы использования разных версий PHP между web и cli может быть никаких, если установлены одинаковые extension и используемый PHP код совместим с обоими версиями, но лучше использовать одну и ту же версию.

Если в принципе скрипты через cli не запускаются (нету таких вещей как фоновые воркеры, демоны и тд) то вообще разницы практически нет.
Ещё нюанс может быть с composer’ом который запускается через cli и тут вопрос в том одинаковые ли модули в разных версиях РНР, и требования ПО. Так как может быть что есть библиотека которая не совместима с PHP 7.4 и пуская composer через 7.4 получите ошибку установки, так как не выполнится проверка по версии РНР.

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Источник

Изменения конфигурации PHP с помощью php.ini и phpinfo()

phpinfo(): получить информацию о PHP

Функция phpinfo() проста в использовании. Создайте PHP-файл на своем сервере и разместите в нем вызов этой функции:

Затем заходите на эту страницу через браузер. И все.

Много информации

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Настройка PHP: Как работает php.ini

Подобные файлы очень похожи. Они включают в себя ряд значений, установленных в строках. Например:

Что отличает хороший INI-файл от плохого, так это то, насколько полезны и понятны комментарии. В этом отношении php.ini отличается в лучшую сторону. В нем содержится множество комментариев, которые помогут разобраться, прежде чем устанавливать значения:

Значения параметров конфигурации PHP, полезные для WordPress разработчиков

Примечания относительно редакторов, прав доступа и перезагрузки сервера

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

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Открытие без sudo приводит к выводу предупреждения о запрете на запись и невозможности сохранить изменения
Для редактирования nano — лучший текстовый редактор. Все его горячие сочетания клавиш прописаны на экране. Поэтому я часто редактирую файл php.ini на удаленном сервере с помощью команды:

Конфигурация с помощью php.ini и phpinfo()

Пожалуйста, опубликуйте ваши комментарии по текущей теме статьи. За комментарии, дизлайки, отклики, подписки, лайки огромное вам спасибо!

Источник

Трюки с phpinfo

Содержание статьи

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

Мотивация

Подозреваю, что у тебя часто возникает ситуация, когда ты находишь уязвимость типа local file include, но не имеешь доступа к файлам логов, сессий и т. п.. Или доступ есть, но записать в файлы ничего не получается. Или даже ты уже находишься в админке сайта, но залить ничего и никуда не можешь, потому что кодеры не добавили функционал менеджера файлов. А ведь удаленный пользователь не может эксплуатировать уязвимость типа LFI, пока не внедрит нужный вредоносный код в любой файл на сервере. В итоге ты забиваешь на обнаруженный баг и впоследствии даже не пытаешься его эксплуатировать. Так же ведут себя и админы уязвимых веб-серверов: баг есть, но это же всего-навсего local file inclusion. Вроде бы php.ini настроен более-менее грамотно, так что чего бояться? Оказывается, что бояться все-таки стоит, и еще как! Сегодня я познакомлю тебя с самым красивым способом проведения LFI-атак и надеюсь, что эта статья мотивирует админов на устранение описываемых уязвимостей, а тестеров — на их обнаружение и эксплуатацию.

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Предпосылки появления нового способа

До сих пор в хакерском сообществе были известны следующие способы заливки шелла через LFI:

Теперь мы можем пополнить этот небольшой список новым способом, который заключается в эксплуатации LFI через временные файлы (/tmp/php*, C:tmpphp*). Успешное выполнение/воспроизведение атаки с помощью нового способа возможно при следующих условиях:

Примерный алгоритм проведения данной атаки выглядит следующим образом (не пугайся, если что-то не будет ясно сразу — дальше я все подробно объясню):

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Локальный инклуд

Для реализации атаки нам обязательно нужен рабочий локальный инклуд. Без него никак не обойтись. Пример того, что нам надо:

Собственно, код абстрактного уязвимого скрипта css.php:

Чтобы узнать путь к папке, где хранятся временные файлы, можно попробовать подключить другой файл, который обязательно должен иметься на сервере. Примеры для *nix и Windows:

http://site.com/css.php?file=../../../../../etc/passwd
http://site.com/css.php?file=../../../../../tmp/
http://site.com/css.php?file=../../../../..WindowsTemp
php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Информация из phpinfo()

Далее нам понадобится любой скрипт с выводом phpinfo(). С помощью него мы узнаем конфигурацию сервера, некоторые параметры php.ini и убедимся, что сервер уязвим для описываемой атаки. В данном случае нам нужны следующие параметры:

Еще одна полезность заключается в том, что phpinfo() отображает в шапке версию PHP, например, PHP Version 5.3.8.

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работаетphp phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Поэтапно процесс отправки файлов выглядит примерно так (согласно RFC1867):

Здесь важно то, что PHP всегда копирует любые заливаемые файлы во временную папку, указанную в конфиге, даже если скрипт с ними работать не собирается. Когда скрипт завершает свое выполнение, PHP удаляет все ранее созданные временные файлы, то есть делает cleanup. Так как мы можем посылать скрипту абсолютно любые файлы, то, соответственно, во временном файле будет записан именно тот код, который и понадобится нам для локального инклуда.

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Алгоритм обмана PHP

Итак, суть нового способа заключается в подключении через LFI временного файла, создаваемого PHP. «Но PHP ведь удаляет временный файл!» — наверное, скажешь ты. Да, верно. Пока неизвестно, как сделать так, чтобы этого не происходило. Но зато вполне известно, как продлить этому файлу жизнь. Для этого нужно сформировать специальный пакет со следующими свойствами:

Таким образом, мы получим следующую ситуацию:

При этом размер временного файла должен быть больше 2 Кб, иначе PHP просто не начнет писать данные в соответствующую директорию.

Как ты уже, надеюсь, понял, сервер «зависнет» на достаточно долгое время, которого должно хватить для того, чтобы проинклудить временный файл и залить с его помощью долгожданный шелл.

В поисках tmp-файла

Следующая проблема состоит в том, что нам неизвестно имя временного файла. Как раз для ее решения нам и нужен скрипт с phpinfo() внутри. Если не удается найти его вручную по дефолтным именам (phpinfo.php, info.php, i.php и т. д.), тогда можно воспользоваться скриптами от Grey и eLwaux для автоматического поиска (ищи их на нашем диске).

Предположим, что мы нашли нужный нам скрипт. Идем дальше. В разделе PHP Variables функция phpinfo() отображает все передаваемые пользователем глобальные переменные: _GET, _POST и _FILES. Старые версии PHP (

Самый простой элементарный такой проверки — выполнить простой GET-запрос к соответствующему скрипту: http://site.com/phpinfo.php?a[]=111. PHP должен отобразить содержимое массива _FILES или _GET (аналогично тому, как это происходит при выполнении функции var_dump). Если массив раскрыт, значит, ты сможешь без проблем узнать имя tmp-файла. За путь к tmp-папке отвечает параметр upload_tmp_dir в php.ini. По дефолту путь в *nix-системах — /tmp, в винде — C:WindowsTemp. В 99 % случаев у PHP есть право чтения файлов оттуда. Согласно документации (bit.ly/raWpwS), в Windows имя временного файла, который PHP рандомно генерирует с помощью функции GetTempFileName, должно иметь вот такой вид:

= C:WindowsTemp (или значение upload_tmp_dir с php.ini),

= php (session.serialize_handler),
= уникальное шестнадцатеричное число.

Интересно, что в Windows каждое последующее больше предыдущего ровно на единицу, например:

php1A3E.tmp
php1A3F.tmp
php1A40.tmp

В *nix имя для временного файла генерируется с помощью функции mkstemp (linux.die.net/man/3/mkstemp):

= php (session.serialize_handler),
= (seed += XXX ^ PID)
XXX в зависимости от скомпилированной библиотеки glibc может равняться:
— XXX = time()
— XXX = gettimeofday().sec

То есть имя, которое всегда будет случайным и непредсказуемым, должно иметь следующий вид: /tmp/phpXXXXXX, где XXXXXX — это рандомные шесть символов из диапазона [A-Za-z0-9]:

/tmp/php6Dekf9
/tmp/phpK1uuk5
/tmp/phpdnJ82

Как видно из примеров выше, по сравнению с *nix в Windows проще узнать имя временного файла. Также стоит отметить, что временный файл существует только (!) во время выполнения скрипта.

Сценарий атаки в Windows

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

Таким образом, при наличии phpinfo() в win-серваке заливание шелла сводится к отправке двух файлов. Если phpinfo() отсутствует, имя временного файла можно теоретически сбрутить. Всего на Windows-сервере будет около 61440 возможных вариантов.

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Сценарий атаки в никсах

Сценарий атаки на *nix-системах будет выглядеть примерно так:

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

Отправив на такой URL POST-пакет с файлом, содержащим PHP-код, построчно считываем ответ. Получив имя временного файла, тянем время, не разрывая коннект, и параллельно инклудим загруженный временный файл с PHP-кодом.

Кстати, в случае если скрипт с phpinfo() недоступен, нам придется угадать или пробрутить имя временного файла. Поскольку придется перебрать 1000000*36 вариантов, то процесс поиска затянется надолго.

Практика

Теперь настало время перейти к практике. Итак, пусть на нашем тестовом серваке стоят Microsoft-IIS/7.5 и PHP/5.3.8. Возьмем с одного реального Windows-сервера файл css.php с уязвимостью типа LFI:

На этом же сервере админ забыл удалить нужный нам файл phpinfo.php:

Код, который мы будем внедрять в tmp-файл:

С помощью PHP-сценария формируем POST-пакет для отправки файла с PHP-кодом:

И отправляем его вот так:

Следующий этап — вызвать зависание сервера. Для этого обрезаем тело запроса на два символа. В результате заголовок Content-Length станет неверным (будет больше, чем нужно):

$req = substr($req,0,strlen($req)-2);
retname($host,$req);

После заливки

После обнаружения нужного файла и его успешного инклуда через LFI ты можешь выполнять команды на сервере. У тебя есть мини-шелл:

Для заливки полноценного шелла путем копирования с другого ресурса ты можешь воспользоваться следующей командой:

here your shell: http://site.com/8149.php

Здесь скрипт expl.php — это конкретный пример реализации описанной атаки, который также можно найти на нашем диске.

Подведение итогов

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Информационная функция PHP

Функция phpinfo() выводит на экран большое количество информации о текущем статусе PHP. Сюда входят сведения об опциях компиляции PHP, о расширениях, версии PHP, версии ОС, пути, переменных опций конфигурации, данные сервера и окружения (если скомпилирован как модуль), шапки HTTP и PHP License.

DoS на базе LFI + phpinfo()

Когда мы отправляли данные в _FILES, они записывались в файл, занимая место на диске. При этом мы отправляли всего пару килобайт. А что будет, если отправить много-много мегабайт? И сразу много файлов? Это может привести к серьезным проблемам в работе сервера. Атакующий способен исчерпать его дисковое пространство. Допустим, что по умолчанию каждый бот абстрактного ботнета может на каждом подключении занимать до 30 Мб дискового пространства в течение всего времени, пока посылается запрос, загружается файл и принимается ответ. Время отсылки и приема может быть умышленно растянуто, чтобы максимально долго использовать свободное место. По времени одно подключение в среднем длится примерно две минуты (одна минута на запрос + одна минута на ответ). Даже малочисленный ботнет способен эффективно подавлять сервер с минимальным количеством и скоростью подключений. Более того, как раз медленный канал бота будет куда более губительным для атакуемого сервера. Выводы делай сам. В настоящий момент единственный способ противостоять такой DoS-атаке — отключить директиву file_upload в php.ini.

Local File Include (LFI) — уязвимость, которая позволяет удаленному пользователю получить доступ к нужной информации с помощью специально сформированного запроса к произвольным файлам. Грубо говоря, LFI представляет собой подключение любого файла на сервере к вызываемому файлу. Что делит LFI на две ветки: выполнение содержимого подключаемого файла и чтение содержимого подключаемого файла. Уязвимости класса LFI чаще всего встречается в различных менеджерах файлов.

Что еще можно выжать из phpinfo()

Результатом выполнения PHP-функции phpinfo() является куча информации, большая часть которой не имеет значения. Однако на некоторые моменты все же стоит обратить внимание, так как они могут облегчить процесс поиска уязвимых мест в системе. Итак, перечислим потенциально полезную информацию, предоставляемую phpinfo():

Источник

Как вывести информацию phpinfo

При использовании услуг php-хостинга, аренды VPS/VDS или сервера может возникнуть потребность в выводе информации phpinfo. Вывод данной информации возможен двумя способами: вывод через интернет-браузер и через консоль.

phpinfo – это вывод подробной информации о конфигурации PHP, настройках, подключенных модулях, версии, системных переменных, конфигурации сервера и т.п., скомпонованных на странице в удобочитаемом виде.

Как вывести phpinfo в браузере

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Для вывода информации о PHP в окне браузера нам потребуется на FTP создать новый файл с расширением «.php», в котором прописать функцию phpinfo().

Например, создадим файл phpinfo.php, в котором пропишем:

После этого откроем этот файл в браузере по адресу: http://domain.tld/phpinfo.php

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Обратите внимание, что у нас на хостинге сайтов файл phpinfo.php нужно создать в директории:

Также не забудьте заменить domain.tld на имя Вашего сайта.

Как вывести phpinfo в консоли

Вывод phpinfo через консоль linux лучше выполнять только на собственном VPS/VDS или сервере, т.к. данный метод на хостинге с доступом к ssh может не работать. Для вывода phpinfo через консоль можно воспользоваться командой:

Но стоит учесть, что в некоторых системах этот метод может не дать результат, или версий PHP может быть несколько. В этом случае прежде сделаем поиск бинарных (исполняемых) файлов php в системе.

php phpinfo не работает. Смотреть фото php phpinfo не работает. Смотреть картинку php phpinfo не работает. Картинка про php phpinfo не работает. Фото php phpinfo не работает

Она выполнит поиск исполняемых файлов в директориях /usr и /opt, которые являются самыми распространенными директориями, где могут размещаться исполняемые файлы php. В результате успешного поиска будет выведен список исполняемых файлов, найденных в системе, например:

Теперь выводим информацию php одной из команд:

Обратите внимание, что в данном примере в директории /usr/bin размещена основная версия PHP сервера, а в /opt/php-54 и /opt/php-72 находятся дополнительные версии.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *