Я так понимаю, что перед использованием ImageMagick, проверка файлов с помощью того же finfo_file, тоже провалится?
Как вам упомянутая функция поможет в таком эксплойте: Код (Text): <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="640px" height="480px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink"> <image xlink:href="https://example.com/image.jpg"|ls "-la" x="0" y="0" height="640px" width="480px"/> </svg> Эх кто-то ботнет за эти 3 недели поднял себе не хилый, чувствуется... .
Зачем. Все четко написано: в полиси файле отключить подверженные уязвимости декодеры: https://habrahabr.ru/post/282896/ На гите уже лежит исходник для тестирования наличия уязвимости. https://github.com/ImageTragick/PoCs И ждать зрелого патча. --- Добавлено --- Главное тут на никсовых осях проверять откуда реально тянет конфиги имейджмаджик. Причем даже в рамках одной среды php exec convert может потянуть конфиг либы из одного каталога (/etc/ImageMagick в моем случае), а тот же ImageMagick.php – уже из другого. Так что изменить их лучше везде.
Это если тебе svg и прочие форматы не лить --- Добавлено --- Поменяй во всех путях поиска: http://www.imagemagick.org/script/resources.php --- Добавлено --- Не проверка типа, а пересохранение файла с заявленным форматом, если речь идет об изображениях традиционных форматов. И последние с проблемой вообще не связано: это и так нужно всегда делать. Уязвимые кодеры библиотеки по пунктам перечислены в ссылках из этого топика. И по пунктам перечислены действия для устранения уязвимости.
короче мне не удаётся отключить или он показывает что поддерживает отключенные кодеки. Как это проверит я хз.
А ты много ресурсов таких знаешь? Там основная проблема в том, что обычно криворуко делают проверку по расширению... и в итоге im можно скормить что угодно. Хотя 99.9% сайтов хотят png/jpg/gif ... ну может еще bmp/tif
Исправлял в двух крупных проектов с трафиками под лям. В обоих работали по нескольку кодеров уязвимых имаджика. Это называется удобство пользователя. Чтобы мог залить почти любой графический формат а система конвертирует в то что нужно. Не по расширению нужно проверять, а пересохранять в заявленном расширении даже если оно в списке разрешенных. Ничего не мешает в валидном файле картинки разместить исполняемый код, настолько древняя история что стыдно говорить о ней в наше время.
Ну так и собирайте дыры, чо. Был бы крупный проект - давно бы уже сломали, добежать бы не успел. Не надо говнокодерство называть "удобством пользователя". 0.001% заливающий свою фотку в svg (кхехехехе) - найдет как конвертнуть в png. Ну размести, и чо )) Эта проблема, кстати, тоже имела корни из "так удобнее будет" начиная с конфигурации веб-сервера и заканчивая разработчиками PHP