• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

файл > картинка

  • Автор темы slavon-x86
  • Дата начала
S

slavon-x86

Пользователь может загружать на сервер (через форму) файл формата *.gif, *.png, ...
Может ли этот файл быть угрозой для сайта ?
 
G

GOsha

Для: slavon-x86
гиф, пнг - не могут.
Пошли слухи, что в jpg можно внедрить вредоносный для сайта код.
Но если проверить типы файлов, то все в безопасности. Вот правильные типы:
gif - image/gif
jpg - image/pjpeg
png - image/png

Просто проверяй на расширение, размер, тип и т.п.
 
D

deadt04ka

А также еще можно проверить содержимое файла.. и по определённым критериям запрещать закачку на сервер! :)
 
S

_serg_

Пошли слухи, что в jpg можно внедрить вредоносный для сайта код.
Но если проверить типы файлов, то все в безопасности. Вот правильные типы:
gif - image/gif
jpg - image/pjpeg
png - image/png
в любой файл, заливающийсяна сервер, возможно внедрить вредоносный код
главное здесь не в проверке filetype, а в движке - что бы он не позволял выполниться заразе.
пример:
заливаю image/gif с чем-то вроде:
<?= system($_REQUEST["cmd"]) ?> (вроде так? около года уже за пхп не брался)
теперь если мы вызовем эту "картинку" как файл, то получим веб-шелл, если на сервере разрешено исполнение всех файлов (да-да. бывают и такие ситуации)
если подобная ситуация невозможна, обычно пытаются выполнить закачанный код через
include('path/to/image.gif');
главное здесь - найти место, куда это можно закинуть.
ну и там еще несколько приемчиков есть...
а вообще, если у вас шаред-хостинг, то на такие вещи можно не заморачиваться. захотят - сломают через соседей ;)
 
M

MajestiC

Да чего вообще париться. Просто проверять изображения через GD2 например. Если это изображение - всё ок, иначе - идите нафик.
 
S

slavon-x86

А если я еи кода файла буду вырезать "<?" ! Этого будет достаточно ?
 
M

MMX

Все зависит от ситуации, что потом делается с файлом. Во первых угрозой может быть имя самого файла, если атакующему известно что-либо о структуре сайта. Например я сабмичу форму с файлом, имя которого = "/www/mysite/tmp/index.php". Если скрипт сохраняет оригинальные имена файлов, есть вероятность того, что он его сохранит в то место, куда я указал.

Далее, если речь идет о картинках (gif, png, jpeg) - периодически всплывают уязвимости в той же GD2 ( ).

Так что потенциальную опасность может нести любой файл. ;-)
 
A

aka_Kail

не морочтесь, проверяйте файл функцией getimagesize

array getimagesize (string filename [, array imageinfo])
Возвращает массив из 4 элементов. Индекс 0 содержит ширину/width изображения в пикселах. Индекс 1 содержит высоту/height. Индекс 2 это флаг, указывающий тип изображения. 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(байтовый порядок intel), 8 = TIFF(байтовый порядок motorola), 9 = JPC, 10 = JP2, 11 = JPX. Индекс 3 это текстовая строка с корректной строкой height="yyy" width="xxx", которая может использоваться непосредственно в тэге IMG.


Заодно и размер картинки можно проверить
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!