-
Notifications
You must be signed in to change notification settings - Fork 1
symlink archive
- Категория: Web
- Стоимость: 450
- Автор: Максим Пивко
- Репозиторий
Сегодня в Комсомольске-на-Амуре задержаны двое подозреваемых в мошенничестве. По данным следствия, задержанные приходили к пенсионерам и под видом сотрудников пенсионного фонда убеждали их вложиться в криптовалюту Bitcoin. После этого пенсионеры переводили им деньги и получали от мошенников документ, на котором утверждалось, что на переведённые деньги выполнен вклад в Bitcoin и что с ростом курса криптовалюты будет регулярно увеличиваться пенсия.
В ходе обыска на месте задержания сотрудники правоохранительных органов изъяли ноутбук, принадлежащий одному из подозреваемых, однако, к сожалению, не нашли на нём никаких улик. Им лишь удалось выяснить, что подозреваемый пользовался известным облачным хранилищем. Следователи уже связались с разработчиками этого сервиса, однако те отказались от сотрудничества.
В условии дана ссылка на сайт — облачное хранилище.
При входе на сайт мы видим единственный файл под названием secret.txt
загруженный пользователем admin
и предложение загрузить дополнительные файлы или архив в формате tar. Вероятно, в этом файле secret.txt
и лежит флаг.
Попробуем что-нибудь загрузить:
Интересно, но пока ничего особенного. А что с архивами?
Создадим архив из двух изображений:
tar cf files.tar another_image.jpg one_more_image.gif
И загрузим его:
Сайт распаковал для нас архив и сохранил файлы из него для дальнейшего скачивания. Запомним это, а пока поизучаем механику работы сайта. Загруженные нами файлы можно скачивать и удалять. Причем параметром для этих операций является абсолютный путь до файла:
<form action="/download" id="download_form_1">
<input type="hidden" name="path" value="/var/user_data/nitwnkldhu/iyvgluhj/image.jpg"/>
</form>
Такой путь есть и у секретного файла:
<form action="/download" id="download_form_4">
<input type="hidden" name="path" value="/var/user_data/nitwnkldhu/admin/secret.txt"/>
</form>
Почему бы не попытаться скачать его напрямую, подсмотрев формат ссылки, используемой при скачивании обычного файла?
https://storage.contest.qctf.ru/download?path=/var/user_data/nitwnkldhu/admin/secret.txt
Неудача:
Вспомним, что сайт позволяет загрузить архивы. Различные попытки использовать path traversal не приводят к успеху, однако на этом возможности tar не заканчиваются. Формат tar поддерживает символические ссылки. Создадим архив с символической ссылкой на secret.txt
(ведь мы уже знаем абсолютный путь до него).
ln -s /var/user_data/nitwnkldhu/admin/secret.txt hack.txt
tar cf hack.tar hack.txt
И загрузим его:
Попробуем скачать файл:
Успех!