я б даже назвал как jpg-arc, ибо тип архивов может быть практически любым )01.03.11 18:56 Число просмотров: 2037 Автор: kstati <Евгений Борисов> Статус: Elderman
Два вопроса.
1. Как лучше проверить грузят ли мне на сервер zip-архив или что-то другое? Только $_FILES["miles"]["type"] не предлагайте, туда можно засандалить любую фигню )
2. Опять наткнулся в сети на интересный момент:
"при проверке getimagesize() в изображение можно "вклеить" шелл-код, и при этой проверке файл определится как изображение, а выполится как php, но это всё вкраце и размыто..." На этом разговор оборвался.
Это что, такая дырищща в php живет? Если да, то как с ней бороться?
Найти описание заголовка ZIP архива и написать разбор...28.02.11 11:29 Автор: Den <Денис Т.> Статус: The Elderman
> Два вопроса. > 1. Как лучше проверить грузят ли мне на сервер zip-архив > или что-то другое? Только $_FILES["miles"]["type"] не > предлагайте, туда можно засандалить любую фигню )
Найти описание заголовка ZIP архива и написать разбор заголовка получаемого файла.
> 2. Опять наткнулся в сети на интересный момент: > "при проверке getimagesize() в изображение можно "вклеить" > шелл-код, и при этой проверке файл определится как > изображение, а выполится как php, но это всё вкраце и > размыто..." На этом разговор оборвался. > Это что, такая дырищща в php живет? Если да, то как с ней > бороться?
Из твоих слов не понятно откуда у этой информации ноги растут. Дай ссылку на описание эксплойта.
А вдруг сигнатуру подделают? :)28.02.11 14:52 Автор: Winer <Виктор С.> Статус: Member
> > Найти описание заголовка ZIP архива и написать разбор > > заголовка получаемого файла. > > А вдруг сигнатуру подделают? :) > > Есть готовая, но устаревшая - > http://ru.php.net/mime_content_type > Там же в тексте ссылка на замену. Нет, MIME не катит, он как раз в $_FILES["miles"]["type"] и лежит.
значит будет битый архив и не более того.28.02.11 15:15 Автор: Den <Денис Т.> Статус: The Elderman
Кажется, тема поднялась после вопроса-ответа:
>Как лучше проверить грузят ли мне на сервер zip-архив или что-то другое?
>А вдруг сигнатуру подделают? :)
>значит будет битый архив и не более того.
здесь den сделал допущение, ибо тот же линуксовый file на раржпг лажанётся, не говоря уж о php.
Я тривиальных решений не вижу, вот по этому и посмотрю за развитием темы.
нетривиальное, но опасное с точки зрения dos (надо оценивать свои силы, грубо говоря) - перепаковка архивов.
идеальных решений нет, разве что стоит задуматься... А стоит ли париться? ) Быть может ты сможешь организовать раздачу этого даже псевдо-зипа безопасно для клиентов?
Возможный косяк на стороне сервера - include-инъекции, либо xss. и то и другое в нормальном коде просто невозможны )
Да есть тривиальные решения, есть. Достаточно просто не...02.03.11 09:26 Автор: Winer <Виктор С.> Статус: Member
> Я тривиальных решений не вижу, вот по этому и посмотрю за > развитием темы. > нетривиальное, но опасное с точки зрения dos (надо > оценивать свои силы, грубо говоря) - перепаковка архивов. > идеальных решений нет, разве что стоит задуматься... А > стоит ли париться? ) Быть может ты сможешь организовать > раздачу этого даже псевдо-зипа безопасно для клиентов? > > Возможный косяк на стороне сервера - include-инъекции, либо > xss. и то и другое в нормальном коде просто невозможны )
Да есть тривиальные решения, есть. Достаточно просто не пытаться исполнять картинки как пхп-/перл-/что-то ещё код. Данные это данные, а код - это код.
Да меня другое беспокоит. Во-первых, место на сервере...02.03.11 12:22 Автор: Fighter <Vladimir> Статус: Elderman
> > Я тривиальных решений не вижу, вот по этому и посмотрю > за > > развитием темы. > > нетривиальное, но опасное с точки зрения dos (надо > > оценивать свои силы, грубо говоря) - перепаковка > архивов. > > идеальных решений нет, разве что стоит задуматься... А > > стоит ли париться? ) Быть может ты сможешь > организовать > > раздачу этого даже псевдо-зипа безопасно для клиентов? > > > > Возможный косяк на стороне сервера - include-инъекции, > либо > > xss. и то и другое в нормальном коде просто невозможны > ) > > Да есть тривиальные решения, есть. Достаточно просто не > пытаться исполнять картинки как пхп-/перл-/что-то ещё код. > Данные это данные, а код - это код. Да меня другое беспокоит. Во-первых, место на сервере ограниченно, а туда нужно положить несколько тысяч файлов, во-вторых, как следствие, файлы должны быть заархивированы и, в-третьих, это обязательно должен быть zip-архив, т.к. отдача будет производится таким людям, у которых может не быть архиватора вообще. А сами архивы будут только загружаться, храниться и отдаваться без обработки. Хотя, черт пхп знает, прямых ссылок не будет, отдача будет идти через скрипт.
А если так? два простейших теста - попытаться открыть архив и проверить, что файл начинается с сигнатуры PK. (zip_open, fread)02.03.11 13:50 Автор: kstati <Евгений Борисов> Статус: Elderman Отредактировано 02.03.11 20:09 Количество правок: 2
Не совсем понятно, что будет делать с "истинным" zip-архивом клиент, у которого в системе нет архиватора, ну да ладно...
Но "истинным" zip-архивом также может быть и self-extract (т.е. ), переименованный в .zip . Какой при этом будет указан mime type, зависит только от добросовестности закачивающего.
Элементарно, Ватсон ) Клиенты под виндой сидят, а она...10.03.11 10:50 Автор: Fighter <Vladimir> Статус: Elderman
> Не совсем понятно, что будет делать с "истинным" > zip-архивом клиент, у которого в системе нет архиватора, ну Элементарно, Ватсон ) Клиенты под виндой сидят, а она zip-архив как папку отображает.
> да ладно... > Но "истинным" zip-архивом также может быть и self-extract > (т.е. ), переименованный в .zip . Какой при этом будет > указан mime type, зависит только от добросовестности > закачивающего. Блин, это уже столько раз было сказано, что уже даже и не смешно.
Это понятно, но лениво ) Думал, что может что-то готовое...28.02.11 12:17 Автор: Fighter <Vladimir> Статус: Elderman Отредактировано 28.02.11 12:18 Количество правок: 1
> > Два вопроса. > > 1. Как лучше проверить грузят ли мне на сервер > zip-архив > > или что-то другое? Только $_FILES["miles"]["type"] не > > предлагайте, туда можно засандалить любую фигню ) > > Найти описание заголовка ZIP архива и написать разбор > заголовка получаемого файла. Это понятно, но лениво ) Думал, что может что-то готовое/стандартное есть)
> > > 2. Опять наткнулся в сети на интересный момент: > > "при проверке getimagesize() в изображение можно > "вклеить" > > шелл-код, и при этой проверке файл определится как > > изображение, а выполится как php, но это всё вкраце и > > размыто..." На этом разговор оборвался. > > Это что, такая дырищща в php живет? Если да, то как с > ней > > бороться? > > Из твоих слов не понятно откуда у этой информации ноги > растут. Дай ссылку на описание эксплойта. Это была ветка на каком-то форуме про то, как проверить что грузят, изображение или что-то другое. Все, что там было про "эксплойт", я скопипастил. Ссылку не сохранил. Если бы там было понятно откуда взялась такая информация, то я бы здесь не спрашивал.
Тебе в помощь:28.02.11 14:23 Автор: Den <Денис Т.> Статус: The Elderman