Тестируем Uploader на уязвимости
Life-Hack [Жизнь-Взлом]/ХакингИ так, как проверять на xss, sql injection и другие уязвимости ваш проект, думаю вы уже знаете. Запустить какой-то сканерок на ваш сайт и все. Но не тут то было, при стандартных запусках всех сканеров, вы не проверяете кусок функционала, под названием Uploader, который служит для загрузки файла или фотографии к вам в базу. Да-да, там тоже могут быть дыры, которые могут привести к потере репутации вашего бренда. По этому в этой статье я поделюсь с вами как проверить этот модуль с помощью Burp Suite.
Давайте я немного перечислю некоторые варианты атак на сайт, которые позволяют выгружать на них файлы:
- - загрузка вредоносного кода через файл
- - загрузка файлов имеющих слишком большой размер для переполнения хранилища вашего сервера
- - внедрение в имя подгружаемого файла тэга для XSS
- - загрузка вредоносных файлов, которые не исполняются на сервере, а предназначаются для других пользователей вашего ресурса или для снижения позиций в поисковой выдаче, сайт с вредоносными файлами, снижается в рейтинге
- - вариант связанный с атакой веб-приложения, которые обрабатывают полученные картинки.
И так для начала нужно скачать сам инструмент. Для этой операции нам понадобиться только платная версия, так как нам нужно будет установить плагин Upload Scanner.
Для того, чтоб загрузить плагин, нам надо перейти в Extender-BApp, там ищем расширение Upload Scanner, кликаем по нем и с правой стороны жмем install.

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

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

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

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

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

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

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

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

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

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

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

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

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