Взлом веб-приложений: BurpSuite, часть 2: обход слабой проверки входных данных для загрузки вредоносного ПО на веб-сайт

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
151
Депозит
-8.95$
Добро пожаловать обратно, мои начинающие кибервоины!

В целом, можно сказать, что решением многих атак с использованием инъекций в веб-приложениях является «проверка входных данных». Она гарантирует, что входными данными являются только те данные, для обработки которых разработано приложение, а не вредоносные команды или скрипты, маскирующиеся под данные.

6a4a49_fb3792329b3c4ecf9b0c358a1ac511b2~mv2.png


Некоторые приложения позволяют или даже побуждают нас загружать фотографии, аватары или другие изображения себя (например, Facebook, Twitter, LinkedIn, другие социальные сети или сайт вашей компании или учебного заведения). Что мешает злоумышленникам просто загрузить вредоносный скрипт? Обычно решение заключается в проверке и подтверждении типа входных данных перед их загрузкой.

В предыдущей публикации мы смогли загрузить вредоносный шелл на сайт DVWA, не проверив входные данные. В этом руководстве мы обойдем слабую проверку входных данных и всё равно загрузим вредоносный скрипт.

Шаг №1: Запуск Kali и Burp Suite

Для начала запустите Kali Linux и откройте BurpSuite.

6a4a49_a861ba37f64c4fe5bb5c417c12576572~mv2.png
6a4a49_a0bf9db2c5fd4aa69f93ae9301f3ed1e~mv2.png


Включите BurpSuite для проксирования ваших запросов и ответов из браузера. Подробнее о том, как это сделать с помощью Mozilla, читайте в моей предыдущей статье о BurpSuite.

6a4a49_dbfe17bef00541cd9afe284802543d07~mv2.png


Шаг №2: Запуск OWASP BWA

Теперь запустите сервер OWASP Broken Web App (BWA), перейдите в приложение DVWA и войдите в систему (администратор/пароль).

6a4a49_3e0a62a1788e42d29fdc69f8d710f990~mv2.png


После входа в DVWA нажмите левую нижнюю кнопку и установите уровень безопасности DVWA на «средний». Убедитесь, что в прокси-сервере BurpSuite включена функция перехвата.

6a4a49_f35df6201b324b6cad70618f29fe2c76~mv2.png


Шаг №3: Попытайтесь загрузить вредоносный файл

Теперь нажмите кнопку «Загрузить». Представьте, что это ваша страница в LinkedIn или профиль в Twitter. В обоих случаях вам нужно загрузить свою фотографию или аватар.

6a4a49_0b6aca365388472bb0c991fcc8cc5dab~mv2.png


Обратите внимание, что на снимке экрана ниже приложение сообщает: «Выберите изображение для загрузки:».

Теперь вместо изображения мы пытаемся загрузить вредоносный скрипт Python. Я создал файл, назвал его «malicious_python_script.py» и попытался загрузить его. Вы можете создать любой текстовый файл, вредоносный или нет, и попытаться загрузить его.

6a4a49_e8d07b1b788f46ecbf1a87dc0d6239f7~mv2.png


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

6a4a49_3c53e4db039b47d5bc0cfbd8be453cfe~mv2.png


Шаг №4: Обход проверки входных данных с помощью BurpSuite

Давайте перейдём в наш BurpSuite и посмотрим на POST-запрос, перехваченный перехватчиком. Как видно из строк 19 и 20, он определил имя файла и его тип как «text/x-python». Отлично, всё верно. Приложение было разработано так, чтобы разрешать загрузку только изображений, поэтому оно отклонило наш вредоносный файл.

6a4a49_130378887d014f0280164a08d93ed8d5~mv2.png


Теперь перейдём к перехваченному POST-запросу и немного его отредактируем. Проверка входных данных производилась внутри формы на стороне клиента. Теперь, когда мы перехватили его по пути на сервер, мы можем изменить код, чтобы он отображал «безопасный» файл перед отправкой на сервер. Это можно сделать, изменив Content -Type в строке 20 на «image/jpeg». Таким образом, сервер примет этот файл, полагая, что это JPEG-файл.

6a4a49_fa8b35d3ed44464eb02f4aebce149945~mv2.png


Теперь в BurpSuite перешлите POST на сервер.

Файл успешно загружен, и наш скрипт Python готов к выполнению своей грязной работы!

6a4a49_79629cadbb3546dcba7d98f07bede6d1~mv2.png


Краткое содержание

В целом, валидация входных данных — это решение проблемы инъекционных атак на веб-приложения и другие приложения. В данном случае веб-приложение выполняло валидацию входных данных только на стороне клиента , и, следовательно, злоумышленник мог манипулировать POST-ответом в BurpSuite, чтобы изменить тип файла и заставить сервер принять наш вредоносный контент!
 
Это очень полезно
 

    Laos

    Очки: -1
    2.3.1. Дублирование собственных тем или сообщений в разных разделах/темах.
Назад
Сверху Снизу