The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Критическая уязвимость в PHP, проявляющаяся в CGI-режиме, opennews (??), 03-Май-12, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


7. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от jedie (?), 03-Май-12, 23:55 
У кого то еще CGI?
Ответить | Правка | Наверх | Cообщить модератору

8. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от Аноним (-), 04-Май-12, 00:08 
На самом деле судя по всему и PHP-скрипты под FastCGI тоже уязвимы, только эксплуатировать можно если попасть в первый запрос при запуске нового FastCGI-процесса. Но здесь всё очень сильно зависит от конфигурации и способа запуска PHP под FastCGI.
Ответить | Правка | Наверх | Cообщить модератору

9. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от Аноним (-), 04-Май-12, 00:13 
> На самом деле судя по всему и PHP-скрипты под FastCGI тоже уязвимы,
> только эксплуатировать можно если попасть в первый запрос при запуске нового
> FastCGI-процесса. Но здесь всё очень сильно зависит от конфигурации и способа
> запуска PHP под FastCGI.

Например, в дефолтовом примере к spawn-fcgi вызывается php5-cgi и теоретически должно сработать.

Ответить | Правка | Наверх | Cообщить модератору

25. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от Аноним (-), 04-Май-12, 02:04 
> Например, в дефолтовом примере к spawn-fcgi вызывается php5-cgi и теоретически должно сработать.

А что, пыху там через командлайн параметры запроса передаются? В cgi оно вот так вот, ибо дебильный древний и тормозной протокол с форком обработчика на каждый реквест и передачей ему параметров через командлайн + редиректом вывода. Что делает этот идиотизм крайне паршивым с точки зрения нагрузки и безопасности: кто угодно может вам провоцировать довольно тяжелый форк процесса оптом извне, что уже хорошая заявка на победу.

А у фаста ж постоянно висяшие процессы + свой протокол для передачи параметров. Не догоняю как сие должно в нем срабатывать?

Ответить | Правка | Наверх | Cообщить модератору

36. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от Аноним (-), 04-Май-12, 09:16 
Почитайте на досуге как работает CGI, командная строка там вообще не причём. FastCGI отличается от CGI только дополнительным циклом обработки запросов, чтобы каждый раз заново процесс не запускать, в остальном всё идентично.
Ответить | Правка | Наверх | Cообщить модератору

44. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +1 +/
Сообщение от sammemail (ok), 04-Май-12, 11:14 
Вы не правы. Почитайте сами спецификации на CGI и FCGI, это разные протоколы.
Ответить | Правка | Наверх | Cообщить модератору

56. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +1 +/
Сообщение от Аноним (-), 04-Май-12, 12:14 
И и там и там запускаемое приложение, в нашем случае интерпретатор php со скриптом, получает аргументы через стандартный ввод и переменные окружения. В логике работы разница только в цикле. То что отличаются методы доставки запроса (стандартный ввод/вывод vs UNIX или TCP сокет) большой роли в рассматриваемой ситуации не играет, на уровне приложения вся обработка параметров запроса идентична.
Ответить | Правка | Наверх | Cообщить модератору

94. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  –1 +/
Сообщение от Аноним (-), 05-Май-12, 16:51 
> рассматриваемой ситуации не играет, на уровне приложения вся обработка параметров запроса
> идентична.

Прикольно гнать пургу с умным видом? А если ман все-таки почитать, там таки написано что это совершенно разные протоколы.

В частности, для особо упорных дятлов я замечу что fastcgi-сервер взлетает без каких либо сакральных знаний о запросах и лишь вывешивает сокет - для взаимодействия по собственному протоколу с фронтэндом. И все. А все запросы рюхаются через тот протокол и сокет уже. Ну то-есть обычный такой постоянно живущий бэкэнд не перезапускаемый на каждый запрос. По поводу чего он и fast, собственно.

Да, для кулхаксоров собравшихся это ломать - http://www.fastcgi.com/devkit/doc/fcgi-spec.html

Таки объясните мне как выглядит хак, при том что бэкэнд фаста запускается и ждет коннекций от фронтэнда? Спиди-гонщики :)

Ответить | Правка | Наверх | Cообщить модератору

98. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от Аноним (-), 05-Май-12, 23:23 
> Прикольно гнать пургу с умным видом? А если ман все-таки почитать, там таки написано что это совершенно разные протоколы.

При чем здесь протокол доставки, когда речь про обработку запроса на стороне приложения  ? HTTP и HTTPS тоже разные протоколы.

> А все запросы рюхаются через тот протокол и сокет уже.

Для приложения обработка таких запросов абсолютно идентична, что при CGI, что при FastCGI. Не важно что под капотом, для приложения обработка будет одинакова, весь перевод приложения от CGI к FastCGI сводится к добавлению цикла и подключению FCGI-библиотеки.

Ответить | Правка | Наверх | Cообщить модератору

89. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от Аноним (-), 05-Май-12, 16:26 
> Почитайте на досуге как работает CGI, командная строка там вообще не причём.
> FastCGI отличается от CGI только дополнительным циклом обработки запросов,

Вообще-то я читал спеки на оба и fast как-то совсем-совсем другой протокол.

> чтобы каждый раз заново процесс не запускать, в остальном всё идентично.

... кроме того что нет собственно запуска и передачи параметров, все делается через свой протокол обмена. Ну а раз нет запуска - то как вы, черт возьми, проэксплуатируете запуск?! :)

Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

100. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от Аноним (-), 05-Май-12, 23:45 
Это я ступил, думал что ошибка в PHP сводится к тому, что он параметры в STDIN парсит как параметры командной строки. Оказалось, действительно, СGI когда в запросе нет "=" передаёт параметры через командную строку:


4.4.  The Script Command Line

   Some systems support a method for supplying an array of strings to
   the CGI script.  This is only used in the case of an 'indexed' HTTP
   query, which is identified by a 'GET' or 'HEAD' request with a URI
   query string that does not contain any unencoded "=" characters.  For
   such a request, the server SHOULD treat the query-string as a
   search-string and parse it into words, using the rules

      search-string = search-word *( "+" search-word )
      search-word   = 1*schar
      schar         = unreserved | escaped | xreserved
      xreserved     = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "," |
                      "$"

   After parsing, each search-word is URL-decoded, optionally encoded in
   a system-defined manner and then added to the command line argument
   list.

   If the server cannot create any part of the argument list, then the
   server MUST NOT generate any command line information.  For example,
   the number of arguments may be greater than operating system or
   server limits, or one of the words may not be representable as an
   argument.

   The script SHOULD check to see if the QUERY_STRING value contains an
   unencoded "=" character, and SHOULD NOT use the command line
   arguments if it does.

Ответить | Правка | Наверх | Cообщить модератору

52. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +1 +/
Сообщение от Аноним (-), 04-Май-12, 11:41 
> протокол с форком обработчика на каждый реквест и передачей ему параметров через командлайн

Не командлайн, а STDIN.

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

67. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от terr0rist (ok), 04-Май-12, 23:04 
> дебильный древний и тормозной протокол

да для вас наверно всё старое - дебильное и тормозное. А для кого-то это этап в развитии.
Тем более CGI позволяет делать кое-что, чего другие не могут в принципе. Дебилизм - это применять ко всем мерку "если это велосипед, то он по умолчанию хуже моего лексуса". Даже если велик и "тормознее".
(Не говоря уже о том, что на современных серваках с современными скриптами все эти форки и передача аргументов занимают 0.0001% процессорного времени)

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

90. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +1 +/
Сообщение от Аноним (-), 05-Май-12, 16:29 
>> дебильный древний и тормозной протокол
> да для вас наверно всё старое - дебильное и тормозное.

Все познается в сравнении. Но некоторые дизайны просто галимы на уровне идеи. Столь же безблагодатная идея как форки процессов в апаче.

> Тем более CGI позволяет делать кое-что, чего другие не могут в принципе.

Например? Очень интересно :)

> все эти форки и передача аргументов занимают 0.0001% процессорного времени)

Ага. Пока не придет Вася Пупкин и не пустит туда ab2 какой-нибудь. Порсле чего Васин нетбук на раз укладывает многопроцессорный ксеон. Потому что ему только конекцию сделать, а серваку - отдуваться по полной: форкануть процесс, обработать запрос, ... :)

Ответить | Правка | Наверх | Cообщить модератору

101. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от angra (ok), 06-Май-12, 10:04 
>> Тем более CGI позволяет делать кое-что, чего другие не могут в принципе.
> Например? Очень интересно :)

Ну не то чтобы принципиально невозможно, но некоторые вещи действительно удобней через cgi, чем через fcgi. Например когда cgi скриптов(или вообще бинарников) много, но каждый из них запускается редко, а значит держать его в памяти в виде постоянного fcgi процесса особого смысла не имеет. Особенно хорошо, когда все эти скрипты недоступны без http авторизации.

>> все эти форки и передача аргументов занимают 0.0001% процессорного времени)
>Ага. Пока не придет Вася Пупкин и не пустит туда ab2 какой-нибудь. Порсле чего Васин нетбук на раз укладывает многопроцессорный ксеон. Потому что ему только конекцию сделать, а серваку - отдуваться по полной: форкануть процесс, обработать запрос, ... :)

Если сравнить это с оверхедом https, то не так уж много получится. Может и от https отказаться? Ну и неплохо было бы понимать, что с точки зрения конечного пользователя абсолютно фиолетово почему не открывается страничка - из-за перегрузки сервера запусками интерпретаторов(а ведь cgi может быть и шустрым бинарником) или из-за превышения лимитов на соединения и/или количество fcgi процессов.

Ответить | Правка | Наверх | Cообщить модератору

102. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от arisu (ok), 06-Май-12, 15:47 
> Может и от https отказаться?

очень разумная идея.

Ответить | Правка | Наверх | Cообщить модератору

106. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от Аноним (-), 10-Май-12, 08:35 
>>> Тем более CGI позволяет делать кое-что, чего другие не могут в принципе.
>> Например? Очень интересно :)
> Ну не то чтобы принципиально невозможно, но некоторые вещи действительно удобней через
> cgi, чем через fcgi. Например когда cgi скриптов(или вообще бинарников) много,
> но каждый из них запускается редко, а значит держать его в
> памяти в виде постоянного fcgi процесса особого смысла не имеет. Особенно
> хорошо, когда все эти скрипты недоступны без http авторизации.

тут особой проблемы нет, можно поставить минимальное кол-во fcgi-процессов в 0 и таймаут жизни fcgi-процесса, скажем в 5-ть минут. если за пять минут обращений не было, то процесс умрет освободив память. минус только один: настройки fcgi сложнее, чем cgi, писать ручками много больше.

Ответить | Правка | К родителю #101 | Наверх | Cообщить модератору

46. "Критическая уязвимость в PHP, проявляющаяся в CGI-режиме"  +/
Сообщение от FSA (ok), 04-Май-12, 11:19 
hc.ru - хостинг-центр РБК
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру