Тестируем Uploader на уязвимости

И так, как проверять на xss, sql injection и другие уязвимости ваш проект, думаю вы уже знаете. Если нет, то читаем мои предыдущие статьи. Запустить какой-то сканерок на ваш сайт и все. Но не тут то было, при стандартных запусках всех сканеров, вы не проверяете кусок функционала, под названием Uploader, который служит для загрузки файла или фотографии к вам в базу. Да-да, там тоже могут быть дыры, которые могут привести к потере репутации вашего бренда. По этому в этой статье я поделюсь с вами как проверить этот модуль с помощью Burp Suite.

 

Давайте я немного перечислю некоторые варианты атак на сайт, которые позволяют выгружать на них файлы:

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


И так для начала нужно скачать сам инструмент. Для этой операции нам понадобиться только платная версия, так как нам нужно будет установить плагин Upload Scanner.

 

Для того, чтоб загрузить плагин, нам надо перейти в Extender-BApp, там ищем расширение Upload Scanner, кликаем по нем и с правой стороны жмем install.

gallery/выделение_091
gallery/выделение_092
gallery/выделение_096
gallery/выделение_097
gallery/выделение_098
gallery/выделение_099
gallery/выделение_100
Вернуться назад
gallery/выделение_104
gallery/выделение_103
gallery/выделение_105
gallery/выделение_106
gallery/выделение_107
gallery/выделение_108
gallery/выделение_109
gallery/00033

И помните все показанное выше, сделано в целях обучения!!!

Можно применять только на своих проектах, после разрешения.

После того как сканирование будет закончено, можно перейти во вкладку Target-site map, для получения отчета по проделанной работе. Там выбираем наш сайт, который сканировали и правее в блоке Issues мы увидим отчет со всеми найденными уязвимостями. О каждой уязвимости можно узнать в блоке Advisory, там подробно описана каждая уязвимость, если будет мало этого, можно воспользоваться предоставленными ссылками в описании проблемы.

А во вкладке Upload Scanner->Done uploads прослеживать какие именно файлы загружаются и какой ответ дает нам сервер при этом.

После этого переходим на вкладку Scanner->Scan queue, где сможем отслеживать процесс выполнения атаки.

Согласен сильно много настроек, но это уже финишная. Возвращаемся к нашему запросу во вкладку Proxy-Http history. Там кликаем во вкладке Request->Raw ниже правой кнопкой мыши и выбираем пункт “Do an active scan

Теперь закончим настройку нашего кейса перейдя во вкладку Scanner->Options проскролив до пункта Scan Issues. Там отмечаем этот же пункт и выбираем все пункты в таблице, чтоб мало не показалось нашему приложению.

Отмечаем этот запрос, затем во вкладке ниже Request->Raw, увидим всю суть запроса на загрузку файла. А именно то, что мы будем подменять: Имя файла, тип контента и сам контент файла.

Загружаем любой файл с любым названием и переходим во вкладку Proxy->Http history, куда попадают все перехваченные пакеты. Смотрим в приложении запрос, который при этом выполняется.

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

 

Ну что погнали делать перехват запроса, в котором происходит загрузка файла. Для этого, как обычно, нам нужно настроить проксю в браузере и приложении перехватчике, то-есть в Burp-suite.

 

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

Если мы хотим видеть логи по каждому загруженному файлу, нам нужно отметить чекбокс Create log, see “Done uploads” tab.

 

Ниже этого чекбокса расположены настройки по смене:

- имени файла,

- типа контента,

- размер

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

 

Также мы можем настраивать скорость загрузки файла с помощью поля Throttle between request in second.

Сканер делится на такие типы модулей, как показано на скрине выше, чтоб не повторяться перечислением. Каждый модуль отвечает за свою часть проверки сканером, то-есть можно настроить, что именно вы хотите проверить при загружении  файла. По дефолту эти модули скрыты, пока не отметить галку “Show modules for Active Scanning”

Давайте теперь немного разберемся что тут на этой странице находиться.

Как только указал путь возвращаемся в установку плагинов и скачиваем наше дело. Если установка прошла успешно, то у вас должна появиться вкладка.

Затем переходим в Upload->Global & Active Scanning configuration

Если эта кнопка не активна, то вам надо скачать jython, так как этот плагин нуждается в этом. Можно скачать здесь. После того как скачаете, распакуйте файл и установите. Затем перейдите в Extender-Options, в инпут Location of jython standalone JAR file прописать путь к файлу jython.jar