Categories: web

Атака на веб сайты с помощью directory traversal

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



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

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

Атака эта называется dir traversal, она далеко не новая и существует еще со времен формата tar. И неудивительно, что большинство архиваторов ее не боятся, — скорее всего, они нормализуют пути до начала работы.
Однако в 2009 году фирма Neohapsis провела исследование на эту тему, и оказалось, что многие библиотеки (к примеру, в PHP, Python, Java и Ruby) уязвимы к dir traversal. Правда, это не столько уязвимость библиотек, сколько следствие возможностей самих архивов. Программист сам должен заботиться о том, чтобы проверить пути, ведь библиотеки позволяют получить имя и путь каждой из сущностей в архиве. Со времени исследования во многих библиотеках это уже пофиксили. Я протестировал Java и Pythоn: первая все так же уязвима, во втором поправили.

[ad name=»Responbl»]

Единственная трудность в реализации атаки — это создание архива файлов с неверными путями. Ручками это сделать можно, но тяжело: легко нарушить целостность архива. Можно воспользоваться тулзой того же Neohapsis, она называется evilarc и подходит для архивов zip, tar, tgz, bz2. Dir traversal будет работать и в системах на *nix, и в Windows.

Click to rate this post!
[Total: 3 Average: 4]
cryptoworld

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

Recent Posts

Лучший адаптер беспроводной сети для взлома Wi-Fi

Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…

4 месяца ago

Как пользоваться инструментом FFmpeg

Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…

4 месяца ago

Как создать собственный VPN-сервис

Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…

5 месяцев ago

ChatGPT против HIX Chat: какой чат-бот с искусственным интеллектом лучше?

С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…

5 месяцев ago

Разведка по Wi-Fi и GPS с помощью Sparrow-wifi

Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…

5 месяцев ago

Как обнаружить угрозы в памяти

Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…

5 месяцев ago