Я решаю некоторые проблемы с хакерством в сети от natas overthewire. На уровне 12 я должен загрузить изображение на сервер, а затем сервер дает мне точную ссылку, в которой он загрузил изображение. Я использую это, написав простой скрипт php, повторяющий содержимое пароля. Это работает, потому что я могу загрузить его как .php-файл, и сервер также сохраняет его в этом формате. На уровне 13 представлена аналогичная задача, но здесь сервер проверяет, является ли это файлом изображения, вызывая функцию exif_imagetype(). Я просто изменяю существующий файл изображения в блокноте и вставляю свой скрипт в конец.Интерпретация jpeg-изображения как сценария php
Мой вопрос в том, что сервер просто проверил расширение файла и отклонил, если файл не был .jpg расширение, было бы лучше, потому что в этом случае, даже если бы я загрузил скрипт, он никогда не будет выполнен сервером поскольку он будет интерпретироваться как файл изображения, а сервер php никогда не будет анализировать файл. Итак, зачем использовать такую функцию, как exif_imagetype()?
'ren nastyvirus.exe cutekittens.jpg'. «Да, это говорит, что это .jpg, это должно быть изображение» –
Каково использование этого вируса, если вещь, которая его выполнит, всегда будет интерпретировать его как изображение? Если php-скрипт не выполняет его, то даже если это не изображение, это не будет иметь никакого вреда. Пожалуйста, объясните ... Возможно, я ошибаюсь. – user257330
Это просто пустяковый пример. но показывает, что вы можете ** НЕ ** доверять именам файлов/расширениям, чтобы правильно идентифицировать содержимое файла. –