CTF. Курс молодого бойца. Начальные задания категории WEB #2.
https://t.me/hacker_sanctuary
Данный пост будет носить практический характер. В нём мы рассмотрим задания начального уровня в категории WEB. Данные задания часто встречаются в простых CTF'ах и иногда, как разминочные, в более крупных.
Задания будут взяты с известного сайта с различными задачами (CTF и не только) - https://www.root-me.org/
Будем решать задачи из категории: Web - Server
Прямая ссылка: https://www.root-me.org/en/Challenges/Web-Server/
Предыдущие задания из данной категории вы можете найти на канале.
Часть 1 - https://telegra.ph/CTF-Kurs-molodogo-bojca-Nachalnye-zadaniya-kategorii-WEB-08-17
Ссылка на пост - https://t.me/hacker_sanctuary/92
Пример 1.
Решим задание "Backup file". Из названия видно, что речь пойдёт про бекапы (бекап - резервная копия каких либо данных для экстренных случаев).
Прямая ссылка на задание - https://www.root-me.org/en/Challenges/Web-Server/Backup-file
Приступаем к заданию и попадаем на форму ввода логина и пароля.

Данное задание по большей части основано на некотором прямом знании, нежели логики и рассуждениям. При создании бекапа часто делается просто копия объекта, однако его наименование нужно немного изменить, для этого могут добавляться различные символы в конец файла (например, чтобы убрать расширение *.php, для того, чтобы файл не исполнялся при обращении к нему).
Можно попробовать скачать файлы, которые потенциально могут быть на сервере. Например, файлы со следующими названиями:
- backup.zip
- backup.tar.gz
- index.zip
- index.tar.gz
- index.php_
- index.php1
- index.phps
- index.php~
При указании в адресной строке последнего названия (index.php~) произойдёт скачивание файла с исходным кодом.
Открыв данный файл в текстовом редакторе получим исходный код (в том числе и серверную часть) обработчика формы.

И получаем пароль для подтверждения решения данного задания.
Данное задание по большей части зацикливается на некотором прямом знание того, что на серверы могут быть забыты/оставлены бекапы важных файлов.
Пример 2.
Решим ещё одно задание. Название - "HTTP directory indexing". Судя по названию, задание нацелено на индексацию директорий на веб-сервере.
Прямая ссылка на задание - https://www.root-me.org/en/Challenges/Web-Server/HTTP-directory-indexing
Приступаем к заданию и попадаем на следующее веб-приложение.

Никаких видимых подсказок нет, по этому посмотрим исходный код.

В исходном коде видим, что подключается некоторый файл из локальной папки admin. Так как в названии задание сказано про индексацию, попробуем просто зайти в папку admin.

Отлично, она индексируется (мы видим её содержимое). В данной папке находится файл (который и подключается к предыдущей страничке) и папку. Зайдём в папку и посмотрим её содержимое.

Видим некоторый текстовый файл "admin.txt". Попробуем открыть его.

Получаем пароль.
Данное задание акцентирует внимание на таком свойстве, как индексация. Смысл индексации заключается в том, что перед вам предстаёт по сути папка с файлами и другими папками и всё это находится на сервере. Не редкость, когда про индексацию забывают в важных местах веб-приложения, и таким образом любой желающий может получить доступ к конфиденциальным файлам или исходным кодам.
Заключение.
В данном посте были рассмотрены 2 достаточно простых, но важных задания. Данные задания часто встречаются в CTF'ах (как один из шагов задания или как подсказки), а также приближены к реальной безопасности и пентестам.