![]() |
Еще раз о шеллах в картинках
Читал мануал по пхп с комментариями, наткнулся на один пост, который дал повод для размышления.
Автор использует этот скрипт для подгонки всех подгружаемых изображений: PHP код:
Проблема только одна: для работы требуется поддержка GD в пхп, но в данный момент на большинстве хостингов она есть. Вот набросанный за пару минут класс для фильтрации картинок: PHP код:
PHP код:
В общем, хочу узнать ваше мнение |
Как тебе отобразаятся изображения в .psd формате?
Бразуер предлагает скачать файл, но он никак не отобразится как картинка.. .psd файл вроде - исходник изображения в фотошопе... |
А что если переименовать jpg в png ?(сорец не смотрел)
Форматов изображений очень много |
ждем обещаного в ирц мегатру кода by Z
ps: Isis, было бы желание, а написать модуль для отображения какой либо графики не проблема |
Гема в irc доказывал, что проверка содержимого не состоятельна, т.к. благодаря специфике форматов изображений можно вставить нужный код в различные коментарии, etc в тело картинки.
Предложенный мною метод переноса "изображений" из временной папки хорош тем, что благодаря особенности GD - эта библиотека не работает с мета-данными файлов, а использует только ту информацию, которая используется при построении растра. И сохраняет GD, соответственно, только графическую информацию, т.е. вставки шеллкода в различных полях идут лесом. Вот этим кодом преобразовал файл с встроенным куда только можно кодом <?php phpinfo(); ?> (image.jpg) PHP код:
image.jpg: 3.75 кб newimage.jpg: 2.33 кб На выходе имеем "чистую" картинку, что и требовалось. |
А можно просто не трахать мозг и не проверять файлы с именами *.png, *.jpeg, *.jpg, *.gif вообще.
|
да собственно никто етого делать и не заставляет. просто пример как можно поиздевается с ГД. сели не уверен в отсутствии локального инклуда в скриптах, то можно перестраховаться таким способом. хотя в етом случае можно разводить демагогию по поводу "ты хyевый программер если предполагаешь саму возможность ошибки".
в крайнем случае, всегда можно оправдать подобные телодвижения довольно неслабым уменьшением размера полученной картинки =) кстати, если не ошибаюсь на nnm используется что-то подобное. |
Я не знал что библиотека gd режет все лишнее поэтому вот окончательный код имхо.Правда если мы имеем дело с залитием например видео то wmv не прописан в майм тайпах апача по умолчанию и поэтому файл shell.php.wmv будет интерпретироваться именно как php , так что проверка по расширению имхо наилучшая.
http://underwater.itdefence.ru/safe_upload.txt |
Цитата:
Ну допустим у тебя шелл внутри картинки. И что с того? Я еще понимаю, можно что из-за кривых bb-кодов(человеческий фактор) допустить дыру, но вот из-за инклюдов.... |
Нер я тоже не понимаю как люди допускают ошибки типа инклуда но ведь даже очень хорошие программисты ошибались.х3
|
| Время: 14:37 |