в том, что если запросить любой файл из папки, в которой работает этот скрипт, он скачается (и даже если указать ./filename, то все равно скачается).
Но если попытаться выйти на директорию выше, и выкачать оттуда 100% существующий файл, то сервак выдаёт 302 и редиректит на страницу 404, при этом заголовок Content-Disposition с запрошенным файлом есть, но контента файла нет)))
1 скрин показывает это
А если запросить несуществующий файл из другой директории, то возвращается 200 статус.
На 2 скрине видно это поведение
То есть сейчас импакт такой, что я могу только определить по коду ответа, есть файл на серваке или нет.
Но очень хочу докрутить до получения контента из файла, может у кого будут идеи как это можно реализовать?
попробуй response splitting
Если ты имеешь в виду попробовать вставить CRLF в путь к файлу, то так не сработает, так он не найдет нужного файла, и вернёт 200 код ответа. А в 200 коде нет заголовка Content-Disposition. Или я не так понял?
ты для начала попробуй проверить что за ваф на той стороне, так это прям поъоже на шляпу
Ну ты исходник скрипта который тебе файл отдает, скачал? Посмотрел что там по коду? Или директория откуда качается и директорая скрипта - разные?
А пробовал url кодировать? Или прописывать путь к файлу типа: ../../../../../../unexist_file_path/../../../../../exist_file_path
Arbitrary file reading) Но очень многие почему-то его lfi называют, что ошибочно
Исходник скрипта нет возможности скачать, так как он в директории выше находится
Url кодировал, без результата. А вот unexist_file_path не делал, сегодня попробую и отпишу, спасибо!
Если в путь подставить папку, которая не существует в системе, а потом выйти из неё и попытаться достать существующий файл, то выдаёт 200 код, как будто файл не был найден...
В общем, до получения контента файлов я так и не смог докрутить. Хотел узнать - какой можно указать импакт от этой баги? Я пришёл к тому, что можно перебором определить установленные в системе пакеты. А есть какие нибудь ещё импакты?
Нет там импакта((( Установленные пакеты, в твоём случае это пальцем в небо. Так как ты на 💯 не уверен правильный ли ты получаешь ответ. Я бы такое не сдавал конечно, но тут дело твое )
Раз его там нет, то его просто нужно найти!
Почему же не могу быть уверен в правильности? Если я запрошу, например, /etc/apache2/apache2.conf, и мне сервер вернет 302, то этот файл там есть. Если вернёт 200, то его там нету) Или я что то не так понял?
Ну запроси /etc/nginx/nginx.conf
Запросил, 302 вернуло) все как и должно быть
Тебя не смущает что у тебя 2 веб сервера ?
дак, и в чем проблема? можно и с десяток других напихать
Я не сказал что не можно. Но это больше исключение чем правило. Как минимум Я бы призадумался на кой хрен на хосте несколько веб серверов
разные порты - разные веб сервисы
Вариант, не подумал
Обсуждают сегодня