Pull to refresh

Comments 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!»
Очень много гос организаций используют Windows + IIS + PHP + Oracle
Достаточно не плохо справляется эта связка с потребностями клиентов
Кто-то хостится с PHP на Windows?
Скажите честно, ваша статья и это… тонкий троллинг 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 лет журнал и его авторы не меняются)
UFO just landed and posted this here
а кстати никто не подскажет ресурс для начинающих, чтобы научиться взламывать свои сайты, чтобы понимать, что именно уязвимо на сайте?
Осталось найти людей, которые юзают windows+php :)
Заявляют, что всё круто, но при этом рекомендуют к установке 5.2.14, а последней версией называют 5.3.3.
Множество .edu сайтов.
UFO just landed and posted this here
Не всегда линукс нужен, да даже сервер WoW помоему на линуксах не встаёт.
UFO just landed and posted this here
В чем моя ошибка (кроме богомерзкого 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» результата (вполне ожидаемо) не меняет
Sign up to leave a comment.