Testing Uploader for vulnerabilities

І так, як перевіряти на xss, sql injection та інші вразливості ваш проект, думаю ви вже знаєте. Якщо ні, читаємо мої попередні статті. Запустити якийсь сканер на ваш сайт і все. Але не тут було, при стандартних запусках всіх сканерів, ви не перевіряєте шматок функціоналу, під назвою Uploader, який служить для завантаження файлу або фотографії до вас в базу. Так-так, там також можуть бути дірки, які можуть призвести до втрати репутації вашого бренду. Тому в цій статті я поділюся з вами, як перевірити цей модуль за допомогою Burp Suite.

TOOLS FOR FIND VULNERABILITY

Логин Свят

1/4/20232 min read

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

- завантаження шкідливого коду через файл

- завантаження файлів, які мають занадто великий розмір для переповнення сховища вашого сервера

- впровадження в ім'я файлу тегу, що підвантажується, для XSS

- завантаження шкідливих файлів, які не виконуються на сервері, а призначаються для інших користувачів вашого ресурсу або для зниження позицій у пошуковій видачі, сайт зі шкідливими файлами, знижується в рейтингу

- варіант пов'язаний з атакою веб-програми, які обробляють отримані картинки.

І так спочатку потрібно завантажити сам інструмент. Для цієї операції нам знадобиться лише платна версія, оскільки нам потрібно буде встановити плагін Upload Scanner.

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

Якщо ця кнопка не активна, то вам треба завантажити jython, тому що цей плагін потребує цього. Можна скачати тут. Після завантаження, розпакуйте файл і встановіть. Потім перейдіть в Extender-Options, в інпутаційний файл jython.

Як тільки вказав шлях, повертаємося в установку плагінів і завантажуємо нашу справу. Якщо установка пройшла успішно, у вас має з'явитися вкладка.

Потім переходимо до Upload->Global & Active Scanning configuration

Давайте тепер трохи розберемося, що тут на цій сторінці знаходиться.

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

Нижче ми маємо всі можливі формати файлів, які буде підвантажувати наш сканер під час перевірки програми. У цьому використовуючи модулі обрані вище.

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

Якщо ми хочемо бачити логи по кожному завантаженому файлу, нам потрібно відзначити чекбокс.

Нижче цього чекбоксу розташовані налаштування по зміні:

- імені файлу,

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

- Розмір

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

Ну, що погнали робити перехоплення запиту, в якому відбувається завантаження файлу. Для цього, як завжди, нам потрібно налаштувати проксю в браузері і додатку перехоплювача, тобто в 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, там докладно описана кожна вразливість, якщо мало цього, можна скористатися наданими посиланнями в описі проблеми.