CTF. Курс молодого бойца. Начальные задания категории WEB #3.
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
Часть 2 - https://telegra.ph/CTF-Kurs-molodogo-bojca-Nachalnye-zadaniya-kategorii-WEB-08-31
Ссылка на пост - https://t.me/hacker_sanctuary/99
Пример 1.
Решим задание "Command injection".
Ссылка на задание - https://www.root-me.org/en/Challenges/Web-Server/Command-injection
Из описания и названия берём самое важно и получаем, что речь пойдёт об "внедрении команд", пароль хранится в файле index.php

Заходим на сайт и видим следующую форму.

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

Подаём на вход следующую строку "; cat index.php", суть которой заключается в том, что мы закрываем команду ping и добавляем ещё одну команду, которая прочитает файл index.php и отобразит его.

После выполнения будет отображено 2 формы ввода - это нормально, так как мы прочитали файл и отобразили его, а он содержит не только php-код но и html-код, который повторно отображается. Нам нужно открыть исходный код.

Видим серверную часть кода, в которой и расположен наш флаг/пароль для решения задания.
Заключение.
Такие уязвимости раньше встречались достаточно часто в различных веб-интерфейсах роутеров и другого сетевого оборудования, часто построенного на базе Linux. Сейчас такие уязвимости имеют место быть, но уже реже.