CICADA8: "Болтун и тайник" write-up
CICADA8Информация, полученная от бота Цикадовича, приводит к веб-странице, которая при каждом обновлении присылает случайно сгенерированные имя и фамилию.

На первый взгляд, на этом возможности сайта заканчиваются. Однако к заданию был приложен словарь для перебора, и, если им воспользоваться, можно обнаружить еще один веб-путь - /actuator.

Перед нами Spring Boot Actuator, более того - уязвимая его конфигурация, ведь доступ к пути /heapdump позволяет получить доступ к снимку памяти запущенного на сервере приложения.
Снимок имеет довольно большой размер, поэтому стоит вдумчиво подойти к тому, что в нем стоит искать. Наиболее логичный вариант - стандартные для Spring-приложений названия переменных, используемых, например, для подключения к базе данных. При поиске стоит помнить, что текстовые представления строк в heapdump'e всегда заканчиваются символом "!".
Пробуем найти строки spring.datasource.url, spring.datasource.username и spring.datasource.password и обнаруживаем всю информацию для подключения к базе данных:

Проанализировав ее, становится ясно, что на порту 5432 находится PostgreSQL с базой usernames_db, к которой можно подключиться от лица пользователя controller с паролем P4ssw0rd1337!.
Успешно подключаемся к базе данных и первым делом проверяем права пользователя, от лица которого мы подключились. Для этого используем команду \du+:

Некоторые версии клиента PostgreSQL не отображают наличие pg_read_server_files при использовании команды \du+. Однако роль можно обнаружить при помощи скриптов, перечисляющих права и возможности пользователя.
Пользователь controller - член роли pg_read_server_files, позволяющей читать произвольные файлы. Попробуем осмотреться в файловой системе при помощи команды select * from pg_ls_dir('/');.

Прямо в корне файловой системы находится файл flag.txt. Читаем его с помощью pg_read_file() и получаем флаг.
