Task-bot 2019: хинт первой недели

Task-bot 2019: хинт первой недели

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

В понедельник в группе Летней школы уже была опубликована небольшая наводка, но, как видно, это не помогло:

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

grumpy

Держите следующий, более полезный хинт от Владимира:

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

Функция fscanf используется, чтобы прочитать строчку из файла wordlist и записать её в buffer. В качестве форматной строки в функцию передаётся %s, что позволяет считывать строки любого, неограниченно большого размера. Это значит, что если записать в какой-то файл на сервере достаточно длинную строку, а потом прочитать этот файл, то мы переполним буфер и перезапишем данные на стеке.

Осталось только как-то записать нужную строчку в файл. К счастью, на сервере уже есть файлы, содержимое которых пользователь может контролировать. Вспомните, какие ;)

hint

Помните, что на решение таска остается еще целых два дня!