07 Бер, 2023

Недостатня Авторизація при Завантаженні файлів

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

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

Приклад уразливого коду на різних мовах програмування:


в Python:

				
					import os
from flask import Flask, request

app = Flask(__name__)

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files['file']
    filename = secure_filename(file.filename)
    file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
    return 'File uploaded successfully'

if __name__ == '__main__':
    app.run()

				
			


У цьому коді на Python upload_file функція обробляє завантаження файлів. Однак немає перевірки, щоб переконатися, що користувач має належну авторизацію для завантаження файлів. Зловмисник потенційно може завантажити на сервер будь-який файл, включаючи шкідливі файли.

• В PHP:

				
					<?php
if ($_FILES["file"]["error"] > 0)
{
    echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
    move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
    echo "File uploaded successfully";
}
?>

				
			

 

Цей PHP-код дозволяє завантажувати файли без будь-якої перевірки авторизації. Зловмисник може завантажити файл з шкідливим кодом на сервер.

• В Java:

				
					import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class UploadServlet extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Check if user is authorized to upload file
        if (!isAuthorized(request.getSession().getAttribute("user_id"))) {
            response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "You are not authorized to upload files.");
            return;
        }

        // Upload file
        Part filePart = request.getPart("file");
        String fileName = getFileName(filePart);
        InputStream fileContent = filePart.getInputStream();
        OutputStream out = new FileOutputStream(new File("/uploads/" + fileName));
        int read;
        byte[] bytes = new byte[1024];
        while ((read = fileContent.read(bytes)) != -1) {
            out.write(bytes, 0, read);
        }
        out.close();
        fileContent.close();
        response.getWriter().println("File uploaded successfully.");
    }

    private String getFileName(Part part) {
        String contentDisp = part.getHeader("content-disposition");
        String[] tokens = contentDisp.split(";");
        for (String token : tokens) {
            if (token.trim().startsWith("filename")) {
                return token.substring(token.indexOf("=") + 2, token.length()-1);
            }
        }
        return "";
    }

    private boolean isAuthorized(String userId) {
        // Check if user is authorized to upload file
        // Implementation not shown
        return false;
    }
}

				
			


У цьому прикладі Java isAuthorized функція реалізована, але тут не показана. Якщо ця функція не реалізована належним чином або обійдена стороною, неавторизований користувач може завантажити файл на сервер. Крім того, цей код неправильно обробляє імена файлів, які містять послідовності обходу каталогів, що може дозволити зловмиснику перезаписати файли за межами передбачуваного каталогу завантаження.

• В PHP:

				
					// Check if user is authorized to upload file
if (!is_authorized($_SESSION['user_id'])) {
    die("You are not authorized to upload files.");
}

// Upload file
if (isset($_FILES['file'])) {
    $file_name = $_FILES['file']['name'];
    $file_tmp = $_FILES['file']['tmp_name'];
    $file_type = $_FILES['file']['type'];
    $file_size = $_FILES['file']['size'];

    move_uploaded_file($file_tmp, "/uploads/" . $file_name);
    echo "File uploaded successfully.";
}

				
			


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

Приклади використання Недостатньою авторизації при завантаженні файлів

Завантаження веб-оболонки:

Зловмисник може завантажити PHP або інший виконуваний скрипт, замаскований під зображення або інший тип файлу. Якщо сервер дозволяє завантаження файлу і виконання сценарію, зловмисник може потім використовувати сценарій для отримання контролю над сервером.

Завантаження шкідливого ПО:

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

Копіювання важливих файлів:

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

Эксфильтрирующие дані:

Зловмисник може завантажити файл, що містить конфіденційні дані, наприклад дамп бази даних, а потім завантажити файл з сервера. Це може дозволити зловмиснику вкрасти цінну інформацію з сервера.

Споживання ресурсів:

Зловмисник може повторно завантажувати великий файл на сервер, витрачаючи ресурси сховища сервера і, можливо, викликаючи атаки типу "відмова в обслуговуванні" (DoS).

Методи підвищення привілеїв при недостатній авторизації при завантаженні файлів

Виконання файлу:

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

Перезапис файлу:

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

Перетин шляху:

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

Міжсайтовий скриптінг (XSS):

Зловмисник може завантажити скрипт, який використовує уразливість міжсайтового скриптинга у веб-додатку. Коли користувач переглядає завантажений файл, скрипт запускається в його браузері і може вкрасти файли cookie сеансу, що дозволяє зловмисникові видавати себе за користувача та підвищувати свої привілеї.

Зовнішній об'єкт XML (XXE):

Зловмисник може завантажити шкідливий XML-файл, який використовує уразливість XML External Entity (XXE) у веб-додатку. Коли додаток аналізує XML-файл, зловмисник може прочитати конфіденційні дані з сервера або виконати довільний код.

Загальна методологія та контрольний список за Недостатню Авторизацію при завантаженні файлів

Методологія:

  1. Визначити функціональність завантаження: Знайдіть області у веб-додатку, де приймаються завантаження файлів, такі як зображення профілю користувача, завантажені документи або медіафайли.

  2. Обмеження по типу тестового файлу: Спробуйте завантажити файл, який не дозволено додатком, наприклад виконуваний файл, і подивіться, блокує додаток завантаження. Якщо додаток не блокує завантаження, це може свідчити про недостатню авторизації.

  3. Обмеження на розмір тестового файлу: Спробуйте завантажити файл, розмір якого перевищує максимально допустимий розмір файлу, і подивіться, блокує додаток завантаження. Якщо додаток не блокує завантаження, це може свідчити про недостатню авторизації.

  4. Фільтри тестових розширень файлів: Спробуйте завантажити файл з розширенням, відмінним від його фактичного формату, наприклад, змінити розширення файлу PHP на розширення .jpg. Якщо додаток приймає файл і не блокує завантаження, це може свідчити про недостатню авторизації.

  5. Тест на шляху проходження: Спробуйте завантажити файл у каталог за межами передбачуваного каталогу завантаження, використовуючи методи обходу шляху, такі як символи "../". Якщо додаток дозволяє завантаження файлу в каталог за межами передбачуваного каталогу завантаження, це може вказувати на недостатню авторизацію.

  6. Тест на перезапис файлу: Спробуйте завантажити файл з тим же ім'ям, що й існуючий файл, який має вирішальне значення для роботи сервера, наприклад файл конфігурації або сценарій. Якщо додаток дозволяє перезаписати файл, то це може свідчити про недостатню авторизації.

  7. Тест на виконання файлу: Спроба завантажити файл, що містить шкідливий код, замаскований під безпечний тип файлу, такий, як зображення або документ. Якщо додаток виконує код з завантаженого файлу, це може свідчити про недостатню авторизації.

  8. Перевірка на наявність вразливостей XSS і XXE: Спроба завантажити файл, що містить шкідливий код, який використовує уразливості міжсайтового скриптинга (XSS) або XML external entity (XXE) у веб-додатку. Якщо код виконується, це може свідчити про недостатню авторизації.

  9. Тест для завантаження файлу: Спробуйте завантажити завантажений файл з сервера і подивіться, можуть до нього отримати доступ інші користувачі або зловмисник без належної авторизації. Якщо до файлів можна отримати доступ, це може свідчити про недостатню авторизації.

Контрольний список:

  1. Перевірте, чи є в додатку які-небудь обмеження на типи файлів, які можуть бути завантажені.

  2. Перевірте, чи має додаток які-небудь обмеження на розмір файлу, який може бути завантажений.

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

  4. Перевірте, чи дозволяє додаток завантажувати файли в каталоги за межами передбачуваного каталогу завантаження.

  5. Перевірте, чи дозволяє додаток перезаписувати файли, і може перезапис файлів призвести до підвищення привілеїв.

  6. Перевірте, чи дозволяє додаток виконувати завантажені файли або інтерпретувати їх як код.

  7. Перевірте, чи не вразливе додаток для атак з використанням міжсайтових сценаріїв (XSS) або XML external entity (XXE) через завантажені файли.

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

  9. Перевірте, чи виконує додаток належну перевірку файлів і очищення завантажених файлів.

  10. Перевірте, реєструє додаток і відстежує завантажувані файли на предмет незвичайної активності або аномалій.

Набір інструментів для експлуатації Недостатня Авторизація при Завантаженні файлів

Ручні інструменти:

  • Burp Suite – популярний проксі-інструмент для тестування безпеки веб-додатків, який може перехоплювати і змінювати запити і відповіді, включаючи завантаження файлів.

  • Insomnia – HTTP-клієнт, який може використовуватися для ручного тестування і налагодження кінцевих точок API, включаючи функціональність завантаження файлів.

  • Postman – аналогічний HTTP-клієнт, який також може використовуватися для тестування завантаження файлів та інших кінцевих точок API.

  • cURL – інструмент командного рядка для надсилання та отримання HTTP-запитів, який може бути використаний для тестування функціональності завантаження файлів.

  • Fiddler – проксі-інструмент веб-налагодження, який може перехоплювати і змінювати HTTP-трафік, включаючи завантаження файлів.

  • Wireshark – аналізатор мережевих протоколів, який може використовуватися для збору і аналізу HTTP-трафіку, включаючи завантаження файлів.

  • Hydra – інструмент командного рядка для примусової аутентифікації та авторизації, який можна використовувати для тестування функціональності завантаження файлів.

Автоматизовані інструменти:

  • Metasploit Framework – популярна платформа тестування на проникнення, яка включає модулі для тестування вразливостей при завантаженні файлів.

  • OWASP ZAP – сканер безпеки веб-додатків з відкритим вихідним кодом, який може автоматично перевіряти уразливості при завантаженні файлів.

  • Nikto – сканер веб-сервера, який можна використовувати для виявлення вразливостей при завантаженні файлів.

  • Nmap – мережевий сканер, який може виявляти функціональність завантаження файлів на веб-серверах.

  • Wfuzz – інструмент тестування безпеки веб-додатків, який можна використовувати для перевірки функціональності завантаження файлів.

  • Skipfish – сканер безпеки веб-додатків, який може виявляти уразливості при завантаженні файлів.

  • sqlmap – автоматизований інструмент SQL-ін'єкції, який також може виявляти уразливості при завантаженні файлів.

  • XSStrike – набір інструментів для виявлення та експлуатації XSS, який можна використовувати для тестування функціональності завантаження файлів.

  • DirBuster – сканер каталогів веб-сервера, який може допомогти визначити функціональність завантаження файлів.

  • WPScan – сканер безпеки WordPress, який може виявляти уразливості при завантаженні файлів на сайтах WordPress.

Плагіни для браузера:

  • FoxyProxy – інструмент управління проксі для Firefox і Chrome, який можна використовувати для перехоплення і зміни HTTP-трафіку, включаючи завантаження файлів.

  • Tamper Data – плагін для Firefox, який можна використовувати для перехоплення і зміни HTTP-запитів, включаючи завантаження файлів.

  • Hackbar – плагін для Firefox, який можна використовувати для тестування функціональності завантаження файлів і інших веб-вразливостей.

  • Web Developer – плагін для Firefox, який можна використовувати для аналізу та тестування веб-додатків, включаючи функціональність завантаження файлів.

Середній бал CVSS стек Недостатньою авторизації при завантаженні файлів

Середня оцінка вразливостей CVSS, пов'язаних з недостатньою авторизацією при завантаженні файлів, може змінюватись в залежності від серйозності та наслідків уразливості, а також інших факторів, таких як тип програми та середовище, в якому воно розгорнуто. Проте в цілому проблеми, пов'язані з Недостатньою авторизацією при завантаженні файлів, можуть мати високий бал CVSS, що варіюється від 6 до 10 або навіть вище в деяких випадках. Це пов'язано з тим, що уразливості при завантаженні файлів можуть призвести до цілого ряду загроз безпеці, включаючи несанкціонований доступ до конфіденційної інформації, виконання коду та підвищення привілеїв, серед іншого. Тому важливо правильно оцінити і усунути ці типи вразливостей, щоб забезпечити безпеку і цілісність програми і її даних.

Загальна перерахування слабких місць (CWE)

• CWE-434: Необмежена завантаження файлу з небезпечним типом – ця слабкість ставиться до відсутності перевірки типу файлу, що може дозволити зловмиснику завантажувати і запускати шкідливі файли.

• CWE-441: Ненавмисне довірена особа або Посередник ('Збитий з пантелику заступник') – Ця слабкість ставиться до відсутності належних перевірок авторизацію при доступі до файлів, що може дозволити зловмиснику отримати доступ до конфіденційних файлів і маніпулювати ними через проміжний компонент.

• CWE-452: Недостатня аутентифікація – ця слабкість ставиться до відсутності належних перевірок достовірності, що може дозволити зловмиснику обійти аутентифікацію і отримати доступ до неавторизованим файлів.

• CWE-467: Використання sizeof() для типу покажчика – ця слабкість відноситься до використання функції sizeof() для типів покажчиків, що може призвести до переповнення буфера і іншим вразливостей, пов'язаних з пам'яттю.

• CWE-494: Завантаження коду без перевірки цілісності – ця слабкість ставиться до відсутності перевірки цілісності при завантаженні коду або файлів, що може дозволити зловмиснику змінювати і виконувати шкідливий код.

• CWE-539: Використання постійних файлів cookie, які містять конфіденційну інформацію – ця слабкість відноситься до використання постійних файлів cookie, які містять конфіденційну інформацію, яка може бути перехоплена і використана зловмисниками для отримання несанкціонованого доступу.

• CWE-602: Забезпечення безпеки на стороні сервера на стороні клієнта – ця слабкість ставиться до відсутності належних перевірок безпеки на стороні сервера, що може дозволити зловмиснику обійти механізми безпеки на стороні клієнта і отримати несанкціонований доступ до файлів.

• CWE-665: Неправильна ініціалізація – ця слабкість відноситься до неправильної ініціалізації змінних або ресурсів, що може призвести до витоків пам'яті та іншим вразливостей.

• CWE-732: неправильне призначення дозволів для критичного ресурсу – ця уразливість відноситься до неправильного призначення дозволів для критичних ресурсів, що може дозволити зловмиснику отримати несанкціонований доступ до конфіденційних файлів або систем.

• CWE-942: Надмірно дозвільний міждоменної білий список – цей недолік відноситься до надмірно дозвільної конфігурації міждоменної білих списків, яка може дозволити зловмиснику обійти механізми безпеки і отримати доступ до неавторизованим файлів або систем.

Топ-10 CVE, пов'язаних з Недостатньою авторизацією при завантаженні файлів

• CVE-2022-35239 – Сторінка управління файлами зображень SolarView Compact SV-CPT-MC310 версії 7.23 і більш ранніх версій, а також SV-CPT-MC310F версії 7.23 і більш ранніх версій містить уразливість недостатньої перевірки при завантаженні файлів. Якщо ця вразливість використовується, довільний код PHP може бути виконаний, якщо зловмисник з віддаленої аутентифікацією завантажує спеціально створений PHP-файл.

• CVE-2022-31041 – Open Forms - це додаток для створення і публікації смарт-форм. Відкриті форми підтримують завантаження файлів в якості одного з типів полів форми. Ці поля можуть бути налаштовані таким чином, щоб кінцеві користувачі могли завантажувати тільки певні розширення файлів (наприклад, тільки PDF / Excel / ...). Перевірка вхідних даних завантажених файлів недостатня у версіях 1.0.9 і 1.1.1. Користувачі можуть змінювати або видаляти розширення файлів, щоб обійти цю перевірку. Це призводить до завантаження на сервер файлів, які мають інший тип файлу, ніж зазначено в розширенні імені файлу. Ці файли можуть бути завантажені (вручну або автоматично) персоналом та / або іншими додатками для подальшої обробки. Таким чином, шкідливі файли можуть проникати у внутрішні / надійні мережі. Версії 1.0.9 і 1.1.1 містять виправлення для цієї проблеми. Як обхідного шляху шлюз API або рішення для виявлення вторгнень перед open-forms можуть сканувати і блокувати шкідливий контент до того, як він потрапить в додаток Open Forms.

• CVE-2022-22326 – IBM Datapower Gateway з 10.0.2.0 за 10.0.4.0, з 10.0.1.0 за 10.0.1.5 і з 2018.4.1.0 за 2018.4.1.18 може допускати несанкціонований перегляд журналів і файлів із-за недостатньої перевірки авторизації. Ідентифікатор IBM X-Force: 218856.

• CVE-2022-0888 – Плагін Ninja Forms – File Uploads Extension WordPress вразливий для довільної завантаження файлів з-за недостатньої перевірки типу вхідного файлу, знайденого в ~/includes/ajax/controllers/uploads.php файл, який можна обійти, дозволяючи зловмисникам, які не пройшли перевірку автентичності, завантажувати шкідливі файли, які можуть бути використані для віддаленого виконання коду, у версіях 3.3.0 включно

• CVE-2021-42671 – Вразливість неправильного контролю доступу існує на онлайн-порталі інженерів Sourcecodester на PHP в nia_munoz_monitoring_system/admin/uploads. Зловмисник може використовувати цю уразливість для обходу контролю доступу і доступу до всіх файлів, завантажених на веб-сервер, без необхідності аутентифікації або авторизації.

• CVE-2021-42362 – Плагін WordPress Popular Posts WordPress вразливий для довільної завантаження файлів з-за недостатньої перевірки типу вхідного файлу, знайденого в ~/src/Image.php файл, який дозволяє зловмисникам з доступом рівня contributor і вище завантажувати шкідливі файли, які можуть бути використані для віддаленого виконання коду, у версіях 5.3.2 включно.

• CVE-2021-39352 – Плагін Catch Themes Demo Import WordPress вразливий для довільної завантаження файлів за допомогою функції імпорту, знайденої в ~/inc/CatchThemesDemoImport.php файл, у версіях 1.7 включно, з-за недостатньої перевірки типу файлу. Це дозволяє зловмисникові з правами адміністратора завантажувати шкідливі файли, які можуть бути використані для віддаленого виконання коду.

• CVE-2021-39341 – Плагін OptinMonster WordPress вразливий для розкриття конфіденційної інформації і несанкціонованого оновлення налаштувань із-за недостатньої перевірки авторизації за допомогою функції logged_in_or_has_api_key в ~/OMAPI/RestApi.php файл, який може використовуватися для використання шкідливих веб-скриптів на сайтах з встановленим плагіном. Це впливає на версії до 2.6.4 включно.

• CVE-2021-36132 – Була виявлена проблема в розширенні FileImporter у MediaWiki до версії 1.36. Для деяких спрощених конфігурацій змінної $wgFileImporterRequiredRight вона може не перевіряти всі відповідні права користувача, що дозволяє користувачеві з недостатніми правами виконувати операції (зокрема, завантаження файлів), які їм не слід дозволяти виконувати.

• CVE-2021-23014 – У версіях 16.0.x до 16.0.1.1, 15.1.x до 15.1.3 та 14.1.x до 14.1.4 в розширених версіях BIG-IP WAF і ASM відсутні перевірки авторизації для завантаження файлів в певний каталог у REST API, які могли б дозволити аутентифікованим користувачам з привілеями гостя завантажувати файли. Примітка: Версії програмного забезпечення, для яких закінчилася служба технічної підтримки (EoTS), не оцінюються.

Недостатня Авторизація при завантаженні файлів експлойти

  • Завантаження веб-оболонки – Зловмисники можуть завантажити шкідливий файл, що містить веб-оболонку, яка дозволяє їм виконувати довільний код на сервері і отримувати віддалений доступ до системи.

  • Завантаження шкідливого скрипта – Зловмисники можуть завантажити скрипт, який при виконанні виконує такі дії, як крадіжка конфіденційних даних або запуск подальших атак на систему.

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

  • Завантаження файлу з виконуваним кодом – Зловмисники можуть завантажити файл з виконуваним кодом, таких як PHP-скрипт, і виконати його на сервері, щоб отримати несанкціонований доступ або виконати інші шкідливі дії.

  • Втручання в завантажені файли – Зловмисники можуть перехопити і змінювати файли в процесі завантаження, що дозволяє їм впроваджувати шкідливий код або змінювати поведінку файлу.

  • Крадіжка конфіденційної інформації – Зловмисники можуть завантажити файл, що містить шкідливий код, який краде конфіденційну інформацію, таку як облікові дані для входу або дані кредитної картки, з сервера або користувачів.

  • Підвищення привілеїв – Зловмисники можуть завантажити файл, який при виконанні підвищує їх привілеї у системі, дозволяючи їм отримати більший доступ і контроль над сервером і його ресурсами.

  • Атаки типу "Відмова в обслуговуванні" – Зловмисники можуть завантажувати великі або шкідливі файли, які споживають ресурси сервера або викликають збій сервера, що призводить до відмови в обслуговуванні законних користувачів

Практикуючись в тестуванні на Недостатня Авторизація при Завантаженні файлів

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

Виявлення потенційних вразливостей – Перегляньте код і документацію додатки, щоб виявити потенційні проблеми, пов'язані з завантаженням файлів, такі як відсутність перевірки вхідних даних, відсутність перевірки типу файлу і відсутність автентифікації або авторизації.

Розробка тестових прикладів – Розробка тестових прикладів, які імітують поширені сценарії атак, такі як завантаження шкідливого файлу, підробка завантажених файлів і використання вразливостей в обхід авторизації. Використовуйте такі інструменти, як Burp Suite, OWASP ZAP або Postman, щоб автоматизувати деякі з цих тестів.

Виконання тестових прикладів – Виконайте тестові приклади і запишіть результати, включаючи будь-які виявлені вразливості і кроки, вжиті для їх використання. Переконайтеся, що ви дотримуєтеся етичних принципів злому і не завдаєте шкоди системі або її користувачам.

Повідомляти про уразливість і усувати їх Повідомляйте про будь-які виявлені вразливості розроблювачам або адміністраторам програми і працюйте з ними над усуненням проблем. Виконайте повторне тестування, щоб переконатися, що уразливості були усунені належним чином.

Продовжуйте тестувати – Постійно тестуйте додаток на наявність нових вразливостей і будьте в курсі останніх загроз безпеки і передових практик.

Для вивчення Недостатня Авторизація при Завантаженні файлів

OWASP Топ-10 – Завантаження файлів – Цей ресурс з проекту Open Web Application Security Project (OWASP) надає огляд ризиків, пов'язаних із завантаженням файлів, і містить рекомендації по запобіганню і зниженню цих ризиків.

Керівництво хакера веб-додатків – Ця книга Девіда Штуттарда і Маркуса Пінто являє собою всеосяжне керівництво з безпеки веб-додатків, включаючи докладний розділ про завантаження файлів.

Академія відрижки – Цей онлайн-навчальний курс від PortSwigger, творців Burp Suite включає розділ про завантаження файлів і про те, як перевіряти уразливості.

ПентестерЛаб – Ця онлайн-платформа надає ряд практичних вправ і лабораторних робіт, пов'язаних з безпекою веб-додатків, в тому числі кілька, присвячених завантаженні файлів і пов'язаних з ними вразливостей.

Події захоплення прапора (CTF) – Заходи CTF надають захоплюючий і складний спосіб попрактикуватися в тестуванні на наявність вразливостей, включаючи недостатню авторизацію при завантаженні файлів. Шукайте події CTF, пов'язані з безпекою веб-додатків або завантаженням файлів.

Онлайн-форуми і співтовариства – Існує безліч онлайн-форумів і спільнот, присвячених безпеки веб-додатків і етичним злому. Вони можуть стати чудовим ресурсом для вивчення нових вразливостей, інструментів і методик, а також для того, щоб задавати питання і отримувати допомогу від більш досвідчених практиків.

Конференції і семінари з питань безпеки – Відвідуйте конференції та семінари з безпеки, щоб вчитися у експертів у цій галузі, спілкуватися з іншими практикуючими фахівцями і бути в курсі останніх тенденцій і передової практики.

Книги з оглядом Недостатньою авторизації при завантаженні файлів

"Керівництво хакера веб-додатків: пошук і використання недоліків безпеки" Дафидд Штуттард і Маркус Пінто – Ця книга являє собою всеосяжне керівництво з безпеки веб-додатків і включає докладний розділ про завантаження файлів.

"Керівництво по тестуванню OWASP" Проектом Open Web Application Security Project (OWASP) – Це керівництво надає платформу для тестування веб-додатків на наявність вразливостей в системі безпеки, включаючи проблеми, пов'язані з завантаженням файлів.

"Безпека веб-додатків, керівництво для початківців" Брайан Салліван і Вінсент Лью – Ця книга являє собою введення в безпеку веб-додатків і включає розділ про завантаження файлів і пов'язаних з ними вразливості.

"Black Hat Python: програмування на Python для хакерів і пентестеров" автор: Джастін Зейтц – Ця книга присвячена використанню мови програмування Python для створення інструментів для тестування на проникнення і включає розділ про завантаження файлів.

"Gray Hat Python: програмування на Python для хакерів і реверс-інженерів" автор: Джастін Зейтц – Ця книга є продовженням "Black Hat Python" і включає в себе більш складні теми, пов'язані з тестуванням на проникнення, включаючи завантаження файлів.

"Підручник хакера 3: Практичне керівництво з тестування на проникнення" Пітер Кім – Ця книга являє собою практичне керівництво з тестування на проникнення і включає розділ про використання вразливостей при завантаженні файлів.

"Розширене тестування на проникнення: злом найбільш захищених мереж у світі" автор: Уіл Аллсопп – Ця книга являє собою розширене керівництво з тестування на проникнення і включає розділ про завантаження файлів і пов'язаних з ними вразливості.

"Основи злому і тестування на проникнення" Патрік Энгебретсон – Ця книга являє собою введення в тестування на проникнення і включає розділ про завантаження файлів.

"Освоєння сучасного веб-тестування на проникнення" автор: Пракхар Прасад – Ця книга являє собою вичерпне керівництво по тестуванню сучасних веб-додатків на проникнення, включаючи завантаження файлів.

"Основи веб-злому: інструменти і методи для атаки в Інтернеті" автор: Джош Паулі – Ця книга являє собою введення в веб-хакерство і включає розділ про завантаження файлів і пов'язаних з ними вразливості.

Список корисних навантажень Недостатня авторизація при завантаженні файлів

  • Файл з нульовим байтом в кінці імені файлу, який може обійти певні перевірки типу файлу і обмеження на завантаження.

  • Файл з подвійним розширенням, наприклад .php.jpg , який може обійти певні перевірки типів файлів і обмеження на завантаження.

  • Файл з обмеженим розширенням, наприклад .php або .asp, який може виконувати код на сервері, якщо додаток неправильно перевіряє тип файлу.

  • Файл з бекдорів, таких як веб-оболонка, який може забезпечити несанкціонований доступ до сервера.

  • Великий файл з неприпустимим заголовком, який може призвести до надмірного споживання сервером ресурсів або збою.

  • Файл з неприпустимими або шкідливими метаданими, такими як дані EXIF, які можуть бути використані для використання вразливостей в бібліотеках обробки зображень.

  • Файл у форматі стисненого архіву, наприклад .zip або .tar, який може містити додаткові файли або корисну навантаження, які можуть бути використані для використання вразливостей.

  • Файл з корисним навантаженням JavaScript, який може бути використаний для виконання коду на стороні клієнта і виконання таких дій, як крадіжка файлів cookie або виконання CSRF-атак.

  • Файл з корисним навантаженням вірусу або шкідливого ПЗ, який може заразити сервер або клієнтські машини.

  • Файл зі спеціально створеним заголовком, таким як заголовок Content-Disposition, який може обійти певні перевірки типів файлів і обмеження на завантаження.

Як захиститися від Недостатньої авторизації при завантаженні файлів

  1. Вбудуйте правильну перевірку завантаження файла: Додатки повинні перевірити тип файлу, розмір і метадані, перш ніж дозволити його завантаження. Це може включати перевірку заголовка файлу, розширення і вмісту, щоб переконатися, що воно відповідає очікуваному формату.

  2. Використовуйте безпечне сховище файлів: Завантажені файли повинні зберігатися в безпечному місці, недоступному для неавторизованих користувачів. Це може включати шифрування файлів, обмеження прав доступу та використання захищеної системи зберігання, такий як Amazon S3.

  3. Реалізувати аутентифікацію і авторизацію користувачів: Додатки повинні вимагати від користувачів автентифікації та авторизації, перш ніж дозволити їм завантажувати файли. Це може включати використання елементів керування доступом на основі ролей, обмеження доступу на основі користувальницьких дозволів та ведення журналу дій користувача.

  4. Використовуйте мережу доставки контенту (CDN): CDN можна використовувати для кешування і поширення статичного контенту, включаючи завантажені файли, щоб зменшити навантаження на сервер і обмежити поверхню атаки.

  5. Реалізувати сканування і фільтрації на стороні сервера: Завантажені файли можуть бути відскановані і відфільтровані на стороні сервера для виявлення і блокування шкідливого контенту. Це може включати в себе використання антивірусного програмного забезпечення, систем виявлення вторгнень і брандмауерів веб-додатків.

  6. Регулярно оновлюйте і виправляйте додаток і сервер: Підтримка програми і сервера в актуальному стані з використанням останніх виправлень і оновлень безпеки може допомогти запобігти використання вразливостей і експлойтів проти системи.

  7. Забезпечити навчання користувачів та тренінг: Навчання методам безпечного завантаження файлів і попередження їх про ризики, пов'язані з завантаженням файлів з ненадійних джерел, може допомогти запобігти ненавмисні порушення.

Заходи по пом'якшенню наслідків Недостатньої авторизації при завантаженні файлів

  1. Додатки повинні перевірити тип файлу, розмір і метадані, перш ніж дозволити його завантаження. Це може включати перевірку заголовка файлу, розширення і вмісту, щоб переконатися, що воно відповідає очікуваному формату.

  2. Завантажені файли повинні зберігатися в безпечному місці, недоступному для неавторизованих користувачів. Це може включати шифрування файлів, обмеження прав доступу та використання захищеної системи зберігання, такий як Amazon S3.

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

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

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

  6. Підтримка програми і сервера в актуальному стані з використанням останніх виправлень і оновлень безпеки може допомогти запобігти використання вразливостей і експлойтів проти системи.

  7. Сторонні засоби і служби безпеки можуть допомогти виявити і усунути проблеми, пов'язані з недостатньою авторизацією при завантаженні файлів. Це можуть бути сканери вразливостей, служби тестування на проникнення і консалтингові фірми з питань безпеки.

  8. Розробники повинні слідувати методам безпечного кодування, таким як перевірка вхідних даних і обробка помилок, щоб запобігти поширені помилки кодування, які можуть призвести до недостатньої авторизації при уразливість при завантаженні файлів.

Висновок

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

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

Приймаючи ці заходи, організації можуть значно знизити ризик недостатньої авторизації при уразливість при завантаженні файлів і захистити свої системи і дані від потенційних атак.

Інші Послуги

Готові до безпеки?

зв'язатися з нами