Удаленное выполнение кода (RCE) на узле shop.edu.stf

SpecIT

Well-known member
Пользователь
Регистрация
3 Фев 2025
Сообщения
58
Реакции
12

Введение​

Приветствую вас, дорогие читатели! Сегодня мы погрузимся в мир веб-безопасности и рассмотрим одну из наиболее критических уязвимостей — произвольную загрузку файлов, которая может привести к удаленному выполнению кода (RCE). Эта уязвимость представляет серьезную угрозу для безопасности системы, и я хочу поделиться с вами своим опытом ее обнаружения и эксплуатации.

1) Изучите структуру запросов:
Внимательно изучите структуру HTTP-запросов, отправляемых при загрузке файлов на сервер.
Обратите внимание на заголовки запросов, особенно на тип содержимого (Content-Type), где указывается многокомпонентный тип (multipart/form-data), который позволяет загружать файлы.

2) Понимание точек входа:
Исследуйте точки входа, через которые пользователь может загружать файлы на сервер. В данном случае это файлы ExAddProduct.php и ExChangePicture.php. Поймите, каких параметров они ожидают и какие файлы они обрабатывают.

3) Внедрение исполняемого кода:
Используя понимание структуры запросов и точек входа, внедрите исполняемый код в загружаемый файл. В данном случае это файлы ProductImage и Image. Обратите внимание на местоположение файла после загрузки и используйте соответствующий URL, чтобы выполнить код на сервере и получить удаленный доступ к системе.

Первоначальная разведка​

Сканирование Nmap​

Для начала я провел сканирование целевого веб-сайта с помощью Nmap, чтобы получить представление о его структуре и открытых портах:
Код:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-25 08:10 EDT
Nmap scan report for shop.edu.stf (10.124.1.238)
Host is up (0.019s latency).
Not shown: 65532 closed tcp ports (conn-refused)
PORT     STATE SERVICE   VERSION
22/tcp   open  ssh       OpenSSH 8.4p1 Debian 5+deb11u2 (protocol 2.0)
80/tcp   open  http      Apache httpd 2.4.56 ((Debian))
1720/tcp open  h323q931?
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Исследование директорий​

Далее я обратил внимание на директорию "Execute", которая содержала множество интересных файлов:
Код:
500      GET        0l        0w        0c http://10.124.1.238/Execute/ExActivateAgent.php
200      GET        6l       10w       90c http://10.124.1.238/Execute/ExAddProduct.php
200      GET        6l        5w      120c http://10.124.1.238/Execute/ExAddBranche.php
...

Обнаружение и эксплуатация уязвимости
Теперь давайте перейдем к самой интересной части — эксплуатации уязвимости.
1. При попытке войти на сайт я заметил, что после ввода данных запрос преобразовывался в . Это вызвало у меня подозрения.
2. Я решил заменить расширение на .php и обнаружил рабочую форму входа.
3. Внимательно изучив исходный код страницы, я заметил слабую проверку учетных данных. Я смог войти на сайт, указав следующие символы ; : ;в полях логина и пароля.
4. После успешной аутентификации я нашел страницу профиля пользователя:
5. На этой странице была форма для загрузки изображения профиля, которая оказалась уязвимой к атаке произвольной загрузки файлов.

Подготовка и проведение атаки
Теперь давайте пройдемся по шагам атаки:

1. Я создал вредоносный PHP-файл (например, rev2.php).

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

3. После этого я выполнил загруженный скрипт для получения доступа к системе.

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

Заключение​

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

Надеюсь, что эта информация была полезной для вас! Если у вас есть вопросы или вы хотите обсудить детали, не стесняйтесь обращаться!
 
Последнее редактирование:
Сверху