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

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

В теории ничто не мешает указать внутри архива путь до файла с поднятием на директорию выше (../) или даже на несколько. Таким образом, мы можем указать практически произвольные места для разархивируемых файлов. В *nix — любые, так как там единая корневая система, а в Windows мы ограничены разделом диска и за его пределы выйти не сможем (то есть c С: на D:, к примеру, таким образом перейти нельзя).

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

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

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


Комментарии

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

В гостях у чертёнка. FreeBSD глазами линуксоида

Порог вхождения новичка в мир Linux за последние десять-пятнадцать лет ощутимо снизился. О…