PHP и CGI

Случаи от опита на разработването на различни WEB проекти. Интересни факти, статии, впечатления. Програмиране и всичко за него в областта на WEB.

Дейв Чайлд
Днес ми хрумна, че би било хубаво да разкажа за толкова интересна характеристика на куп php и cgi (и fastcgi също).

По принцип малко или много хора знаят, че когато свързвате php към Apache чрез cgi, е възможно да конфигурирате почти всеки скрипт поотделно. По-конкретно, за всяка папка с php скриптове може да се създаде собствен файл php.ini със свои собствени настройки, които ще презапишат глобалните настройки.

Днес си помислих, че този чип може да се използва за егоистични цели. Например, php има няколко различни опции за конфигуриране, като например safemode или openbasedir ... Познайте на какво получавам? Дада, те могат лесно да бъдат заобиколени в php + cgi!

Обикаляме безопасния мод

Създавайки свой собствен php.ini, можете да заобиколите куп настройки за сигурност, като например:

  • безопасен режим
  • open_basedir
  • disable_functions
  • memory_limit
  • max_execution_time

И ако с помощта на последните две можете леко да подобрите условията на евтин хостинг, то с помощта на първите три можете да заобиколите ограниченията за сигурност и е възможно да хакнете целия сървър.

; Безопасен моден байпас:
safe_mode = Изключен

; Байпас отворен bes dira
отворен_баседир =

; Включваме всички функции
disable_functions =

; Деактивирайте ограничаването на консумацията на памет
memory_limit = -1

; И премахваме ограничението за времето за изпълнение на всеки скрипт
max_execution_time = 0

По принцип можете да въведете всякакви други настройки, които искате, т.е. напълно да конфигурирате PHP според вашите нужди)

UPD: между другото, в допълнение към посочения метод за експлоатация на тази уязвимост, той може да се използва при качване на файлове и при успешно съвпадение това може да доведе до изпълнение на код, вижте статията ми по-подробно: Безопасно качване на файлове в сървър

Като цяло тази функция (или грешка, дори не знам как да я извикам правилно) е много опасна за хостинг, където защитата на потребителите един от друг и целия сървър се основава на безопасен режим и openbasedire (dada, и има такива).