Приветствую всех тех кто увлекается CTF, этот райтап будет посвящен заданию Безопасное хранилище в категории Веб на Codeby Games.
Задание может завести вас в тупик, так же как и меня. Здесь я опишу свое решение данного таска, и буду признателен отписать в комментарии если вы решили его по другому.
С первого взгляда это обычный сайт, через который можно загружать файлы на сервер.
В данном случае загружать можно только PNG. В задании стоит проверка на расширение и MIME типа файла. Это легко проверяется, но в конечном счете мне ничего это не дало.
В итоге я переключился на другой параметр. А именно на первое поле в создании каталога.
Отправляя такой запрос мы получаем ответ, что такой каталог создан и находится по сгенерированному пути.
Мы воспользуемся такой инъекцией как OS Command Injection. Это тип атаки на безопасность веб-приложений, когда злоумышленник может
выполнить произвольные операционные системные команды на сервере, используя уязвимость в обработке входных данных.
Попробуем использовать ее и посмотрим на ответ :
В нашем примере мы передали через | ls команду которая обычно используется для вывода содержимого текущего каталога.
Попробуем посмотреть содержимое каталога чуть выше :
Успех нужный файл с флагом найден, нам останется только прочитать его. Это я оставлю тем кто еще только на пути решения.
Вывод:
Если веб-приложение не обрабатывает входные данные правильным образом и позволяет выполнение таких команд напрямую на сервере, то злоумышленник может получить доступ
к системным данным, выполнить нежелательные операции и взломать сервер.
Для защиты от подобных атак необходимо тщательно фильтровать и валидировать все входные данные, избегать использования сомнительных символов и операторов в командах, а также
использовать безопасные методы обработки данных, например, пользуясь подготовленными запросами в базе данных или использованием специальных библиотек для обработки файлов и команд.
Задание может завести вас в тупик, так же как и меня. Здесь я опишу свое решение данного таска, и буду признателен отписать в комментарии если вы решили его по другому.
С первого взгляда это обычный сайт, через который можно загружать файлы на сервер.
В данном случае загружать можно только PNG. В задании стоит проверка на расширение и MIME типа файла. Это легко проверяется, но в конечном счете мне ничего это не дало.
В итоге я переключился на другой параметр. А именно на первое поле в создании каталога.
Отправляя такой запрос мы получаем ответ, что такой каталог создан и находится по сгенерированному пути.
Мы воспользуемся такой инъекцией как OS Command Injection. Это тип атаки на безопасность веб-приложений, когда злоумышленник может
выполнить произвольные операционные системные команды на сервере, используя уязвимость в обработке входных данных.
Попробуем использовать ее и посмотрим на ответ :
В нашем примере мы передали через | ls команду которая обычно используется для вывода содержимого текущего каталога.
Попробуем посмотреть содержимое каталога чуть выше :
Успех нужный файл с флагом найден, нам останется только прочитать его. Это я оставлю тем кто еще только на пути решения.
Вывод:
Если веб-приложение не обрабатывает входные данные правильным образом и позволяет выполнение таких команд напрямую на сервере, то злоумышленник может получить доступ
к системным данным, выполнить нежелательные операции и взломать сервер.
Для защиты от подобных атак необходимо тщательно фильтровать и валидировать все входные данные, избегать использования сомнительных символов и операторов в командах, а также
использовать безопасные методы обработки данных, например, пользуясь подготовленными запросами в базе данных или использованием специальных библиотек для обработки файлов и команд.