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

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



l33t-hoster
Личный блог Corb3nik - Infosec, CTF и инструменты corb3nik.github.io



Понимание файлов

Каждый формат файла изображения начинается с нескольких магических байтов, используемых для идентификации. Например, PNG начинается с 4 байтов \x89PNG. Поскольку \x89PNG не является допустимой директивой .htacces, мы не сможем использовать формат файла PNG для нашего полиглота.

В случае .htaccess вы хотите найти формат файла, который начинается с #, поскольку # интерпретируется как комментарий, а остальная часть содержимого изображения игнорируется, что приводит к действительному файлу .htaccess.

В файлах .htaccess строки, начинающиеся с нулевого байта (\x00), также игнорируются, поэтому теперь можно попытаться найти допустимые типы файлов изображений, начинающиеся с # или \ x00.

CTF

В этом случае команда рассмотрела поддерживаемые типы файлов: http://php.net/manual/en/function.exif-imagetype.php#refsect1-function.exif-imagetype-constants это отличный пример того, как вы нужно потратить время, чтобы понять технологию, с которой вы работаете, догадки вас сюда не приведут.

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

Команда выяснила, используя сценарий, что для действительного файла .wbmp требуется всего 6 байтов. Они также предположили, что ширина и высота хранятся в байтах 3–6, высота была важна, поскольку испытуемые искали изображения размером 1337x1337, это, конечно, полезно для других сайтов, которые настаивают на изображениях или значках определенного размера.

Успешная загрузка

Как видите, команда успешно загрузила действительный файл .htaccess, используя этот трюк ...

Запоздалые мысли

Причина, по которой я хотел осветить это сегодня, состоит в том, чтобы показать, как можно обойти, казалось бы, невозможные препятствия, понимая, как все работает в самой основе. Опять же, вы не добьетесь этого наугад. Большая часть взлома несет в себе те же абстрактные концепции, и применение этой концепции в других областях будет успешным, просто посмотрите на hackthebox и OSCP, где можно найти все простые обходные пути с простыми расширениями файлов или обманчивыми магическими байтами.