Пpогpаммист может найти ошибку только в чужой пpогpамме

+--------------------------------------------------------------------------------------------------------------------------[release: 01.04.05]----+
|
|
|
|
|
|
|
  _|_|  _|_|_|  _|  _|    _|  _|_|_|      _|_|    _|  _|  _|   _|  _|    _|_|             _|  _|    _|_|_|
_|      _|  _|      _|_|_|_|  _|          _|  _|  _|  _|  _|_| _|      _|      m        _|_|_|_|_|  _|  _|
_|      _|_|    _|  _| _| _|  _|_|    &   _|_|    _|  _|  _| _|_|  _|  _|_|_|    e        _|  _|    _|  _|
_|      _| _|   _|  _|    _|  _|          _|      _|_|_|  _|   _|  _|      _|      n    _|_|_|_|_|  _|  _|
  _|_|  _|  _|  _|  _|    _|  _|_|_|      _|        _|_|  _|   _|  _|  _|_|  h       t    _|  _|    _|_|_|
|
|
|
|
|
|
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------+
+-----------------------------------------------------[0x06: Пасхальные яйца в PHP]------------------------------------------------------+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Здравия желаю господа - читатели!
Я думаю каждый, кто пишет на РНР, сталкивался, или хотя бы слышал про "яйца" в пхп! Что ещё за яйца ? Вообщем это баг в обработке сессий интерпретатором РНР, под название PHP Easter Eggs, видимо специально сделаный, каким-то весёлым кодером из бригады php.net. В 8 из 10 сайтов провереных мною, данная уязвимость была в полной красе... Проверить движок на уязвимость очень просто:

http://www.mywebsite.with/file.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 после подстановки переменной на экране появляется овальный логотип самого интерпретатора РНР, причём вырубая весь дальнейший сценарий файла.
Для тех кто в танке, есть функция вывода встроеного логотипа РНР - php_logo_guid();
набросаем небольшой сценарий для проверки (так, на всякий случай ;)

print "<img src=". $_SERVER['PHP_SELF'] ."?=". php_logo_guid() ." alt=\"PHP Logo !\" />";

как и было задумано мы видим уже знакомый логотип интерпретарора, но если глянуть в сорс странички, мы увидим кое-что интересное, а именно:

<img src=/file.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 alt="PHP Logo !" />

Вам ничего не напоминает? ДА, именно ?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 - это и есть запрос, который показывает наш фиолетовый логотип!

есть ещё один вид переменной:
http://www.mywebsite.with/file.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
после запроса перед нами предстаёт, что-то вроде phpinfo(),но не верьте заголовку, так-как это функция phpcredits(); показывающая нам список гениев-шутников "бригады" php.net

ничего не могу сказать по поводу третей перменной:
http://www.mywebsite.with/file.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
которая нам показывает овальную фотографию, какой-то ушастой собаки...
проверьте сами:
http://php.net/?=PHPE9568F36-D428-11d2-A769-00AA001ACF42 =)

Что бы это всё могло значить? Неужели есть какая-то кодировка функций которые могут передаваться простым GET методом, или это просто привет от кодеров?
Я слыхал про взломы с помощью этой уязвимости, якобы есть возможность запускать системыне команды на сервере, но я этому не поверил ;)

-SacrificE-[B.o.I]


Note from CPS:

После долгих экспериментов над PHP мы выяснили, что E9568F36 (PHPxxxxxxxx) есть указатель на вызываемую функцию, а параметры функции передаются методом POST. Единственной сложностью является подбор оставшейся части идентификатора сессии (например, D428-11d2-A769-00AA001ACF42). Единственное, в чем мы убедились, она зависит только от типов входных параметров и указателя на вызываемую функцию.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+-----[content]-----------------------------------------------------------------------------------------------------------------------[mail us]-----+