Как стать автором
Обновить

Комментарии 52

Долго и упорно читал и наконец осилил статью — Интересная PHP-инъекция.
Хорошо, что методы защиты от неё стандартные — register_globals off + мозг.

А за ссылочки, спасибо. Есть то чего не знал.
Если я всё в статье понял правильно, для защиты достаточно хоститься не на Windows.
Более того, сочетание php и win настолько противоестественно, что непонятно, зачем было приложено столько усилий
Тем не менее, microsoft когда-то обещал поддержку php в iis. Похоже, это будет весело.
У вас устаревшая информация — в IIS7 уже давно реализована поддержка. Можете посмотреть презентации на techdays.ru.
Значит — это тот самый момент, когда стало весело :)
это весело пока не принуждают ипользовать
>> PHP теперь работает на Windows лучше, чем когда либа.

Либа вообще не работает ))
Да уж, опечаточка что надо!
Боже, это на microsoft.com.
И на опечатку не похоже, это ж А вместо О. Они далековато…
Жесть.
На сколько я знаю, проблемы только с PECL'ом.
Корпоративные сетки со внутренними документооборотами, хелдесками, виками и прочими портальчиками.
Зачастую всегда есть вафля, всегда есть простой код (так как много народа вбивают не до ключа).
Отсюда — садимся рядо с чашкой кофе, брутим по словарю точку, ищем пхп движок в 1-10 и 240-250 (по опыту) диапазоне ну и получаем доступ.
Вроде и пром шпионаж, а вроде бы и ничего особо секретного.
Не побоюсь этого слова: «Windows must die!»
И всё же, некоторые все равно используют такую связку, например
stat.kuban.skypoint.ru/
Очень много гос организаций используют Windows + IIS + PHP + Oracle
Достаточно не плохо справляется эта связка с потребностями клиентов
Кто-то хостится с PHP на Windows?
1gb.ru
Они хостят.
Скажите честно, ваша статья и это… тонкий троллинг php'шников?
«я тупо скомпилил этот код под винду»
скомпилировать пхп код под винду это сильно. главное не забывать что это интерпретируемый язык и нативно оно такое не умеет(специально уточняю для любителей zend)
Тоже не понял этого выражения. Может автор имел что то другое в виду?
имелся ввиду код интерпретатора php, в котором не добавились windows-specific проверки на имена файлов, а просто перекомпилировался *nix-вариант, в котором отсутствуют вышеупомянутые проблемы. Ваш К.О..
А почему решили, что он не мог его скомпилировать?
Отсканировал на принтер?)))
Кстати фича с нуль байтом ( отсекание окончание файла, т.е в коде file_get_contents("/images/".$_GET['a'].".jpg"); где a=index.php%00 попытается открыть именно index.php, а не index.php.jpg ) работает под *nix тоже
Недавно это пофиксили.
Можно подробнее?
5.3.4 — Paths with NULL in them (foo\0bar.txt) are now considered as invalid (CVE-2006-7243).
В PHP Version 5.3.3 был фикс («замена null байта»: смотри в гугле), а в 5.3.4
Paths with NULL in them (foo\0bar.txt) are now considered as invalid. (Rasmus)

Скоро все перейдут на 5.3.4+ и null байт останеться в прошлом.
Не так быстро как хотелось, но рано или поздно так будут. А ка нет нужно учитывать такой кряк ;)
Мне кажется, за вещи типа "/images/".$_GET['a'].".jpg" — нужно давать железной линейкой по пальцам.
Голову отрубать, не иначе.
В связи с чем назревает вопрос, а какой реальный толк от подобного рода эксплоитов, если их все равно не применить, если код написан не совсем уж криво, я даже представить не могу, кто сейчас так может делать и зачем.
Ну и + windows == не улавливаю рил-тайм пользы:)
Это не баг, это фича :)
спасибо за интересный материал, надоели репортажы о распаковке очередной китайской х-ни.
Казалось бы, зачем использовать FindFileFirst если есть СreateFile или даже просто fopen?
Возможно потому, что тогда пропадет кросс-платформенность из-за чувствительности к регистру одного и того же php кода
за 10 лет журнал и его авторы не меняются)
НЛО прилетело и опубликовало эту надпись здесь
а кстати никто не подскажет ресурс для начинающих, чтобы научиться взламывать свои сайты, чтобы понимать, что именно уязвимо на сайте?
Осталось найти людей, которые юзают windows+php :)
Заявляют, что всё круто, но при этом рекомендуют к установке 5.2.14, а последней версией называют 5.3.3.
Множество .edu сайтов.
НЛО прилетело и опубликовало эту надпись здесь
Не всегда линукс нужен, да даже сервер WoW помоему на линуксах не встаёт.
НЛО прилетело и опубликовало эту надпись здесь
В чем моя ошибка (кроме богомерзкого C++ вместо божественного PHP и утечки хэндлов, на которые мне в данном случае плевать):
#include <Windows.h>
#include <iostream>

void
main() {
	WIN32_FIND_DATA findData;
	if (FindFirstFile(L"c:\\windows\\system32\\note*", &findData) != INVALID_HANDLE_VALUE) {
		std::wcout << L"note* matched: " << findData.cFileName << std::endl;
	}

	if (FindFirstFile(L"c:\\windows\\system32\\note<", &findData) != INVALID_HANDLE_VALUE) {
		std::wcout << L"note* matched: " << findData.cFileName << std::endl;
	}
}


Вывод (вполне ожидаемо) следующий:
note* matched: notepad.exe
Press any key to continue . . .


Вот блин. Даже в таком примере баг (тестил эти строки по отдельности — так что в результате был уверен заранее). В общем замена во втором случае «note* matched» на «note< matched» результата (вполне ожидаемо) не меняет
Зарегистрируйтесь на Хабре, чтобы оставить комментарий