Видим главную страницу
Перехватим и посмотрим запрос на прочтение лога

Способ 1: Code Analysis
Видим, что флаг лежит в /home/overseer/flag.txt
Видим, что все, что подается в log_file “санитизируется” и проверяется на / в начале.
Вот и ошибка. При вызове sanitize_filename последовательности ../ заменяются не рекурсивно.
Исходя из этого, мы можем составить payload такого типа. Тут, выделенные красным блоки уберутся, но все, что осталось, все равно соберется в последовательности ../
Получаем флаг.

Способ 2: Fuzzing
По логике задания, можно предположить, что будет LFI и можно попробовать пофаззить.
Сохраним запрос в файл.
Запустим ffuf с листом на LFI тестинг от Джейсона Хаддикса.
ffuf -request search.req -request-proto http -w /opt/SecLists/Fuzzing/LFI/LFI-Jhaddix.txtИ также получаем рабочие payload’ы на чтение файлов. Из исходного кода находим файл, который нужно прочитать, и так же читаем, как и в первом способе.
