• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Codeby Games Безопасное хранилище[Writeup]

vov4ick

Cybercoliseum II
11.12.2022
39
103
BIT
799
Приветствую всех тех кто увлекается CTF, этот райтап будет посвящен заданию Безопасное хранилище в категории Веб на Codeby Games.

1713624466472.png


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

1713621199395.png


В данном случае загружать можно только PNG. В задании стоит проверка на расширение и MIME типа файла. Это легко проверяется, но в конечном счете мне ничего это не дало.
В итоге я переключился на другой параметр. А именно на первое поле в создании каталога.

1713621977962.png


Отправляя такой запрос мы получаем ответ, что такой каталог создан и находится по сгенерированному пути.
Мы воспользуемся такой инъекцией как OS Command Injection. Это тип атаки на безопасность веб-приложений, когда злоумышленник может
выполнить произвольные операционные системные команды на сервере, используя уязвимость в обработке входных данных.

Попробуем использовать ее и посмотрим на ответ :

Screenshot_5.png


В нашем примере мы передали через | ls команду которая обычно используется для вывода содержимого текущего каталога.
Попробуем посмотреть содержимое каталога чуть выше :

Screenshot_6.png


Успех нужный файл с флагом найден, нам останется только прочитать его. Это я оставлю тем кто еще только на пути решения.

Вывод:

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!