02 Бер, 2023

Нездатність обмежити завантаження файлів

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

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

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


в PHP

Поширеною помилкою є використання $_FILES $_FILES глобальна змінна для прямого доступу до завантаженого файлу без виконання будь-якої перевірки. Ось один з прикладів:

				
					<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
} else {
    echo "Sorry, there was an error uploading your file.";
}
?>

				
			


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

в Ruby на рейках

Поширеною помилкою є використання params[:file] параметр для прямого доступу до завантаженого файлу без виконання будь-якої перевірки. Ось один з прикладів:

				
					class UploadController < ApplicationController
  def index
    if request.post?
      uploaded_io = params[:file]
      File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file|
        file.write(uploaded_io.read)
      end
    end
  end
end

				
			


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

в Node.js

Поширеною помилкою є використання fs модуль для запису завантажених файлів на сервер без виконання будь-якої перевірки. Ось один з прикладів:

				
					const express = require('express');
const fileUpload = require('express-fileupload');
const app = express();

app.use(fileUpload());

app.post('/upload', function(req, res) {
  if (!req.files || Object.keys(req.files).length === 0) {
    return res.status(400).send('No files were uploaded.');
  }

  let uploadedFile = req.files.file;
  let fileName = uploadedFile.name;
  let filePath = __dirname + '/uploads/' + fileName;

  uploadedFile.mv(filePath, function(err) {
    if (err) {
      return res.status(500).send(err);
    }

    res.send('File ' + fileName + ' uploaded!');
  });
});

				
			


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

• в C#

В C # поширеною помилкою є використання HttpPostedFile клас для прямого доступу до завантаженого файлу без виконання будь-якої перевірки. Ось один з прикладів:

				
					using System;
using System.IO;
using System.Web;
using System.Web.UI;

public partial class Upload : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            HttpPostedFile file = Request.Files["file"];
            if (file != null && file.ContentLength > 0)
            {
                string fileName = Path.GetFileName(file.FileName);
                string path = Server.MapPath("~/uploads/") + fileName;
                file.SaveAs(path);
                StatusLabel.Text = "File " + fileName + " uploaded successfully!";
            }
        }
    }
}

				
			


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

Приклади використання Нездатність обмежити завантаження файлів

Завантаження шкідливого скрипта

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

Атаки типу "відмова в обслуговуванні" (DoS)

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

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

Зловмисник може завантажити файл, що містить шкідливий код, наприклад, JavaScript, а потім обманом змусити користувача завантажити та запустити файл. Це може призвести до межсайтовой скриптовой атаці (XSS), при якій зловмисник може вкрасти облікові дані користувача або впровадити шкідливий код в браузер користувача. Наприклад, зловмисник може завантажити файл, що містить код JavaScript, який краде користувальницькі файли cookie і відправляє їх на сервер зловмисника.

Віддалене виконання коду (RCE)

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

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

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

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

Використання уразливості в веб-додатку

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

Зловживання правами доступу до файлів

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

Завантаження шкідливого плагіна або розширення

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

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

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

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

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

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

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

  5. Тест для перевірки на стороні клієнта: Перевірте, чи виконує додаток перевірку завантажених файлів на стороні клієнта. Спробуйте обійти перевірку на стороні клієнта, змінивши код на стороні клієнта або використовуючи інструмент для управління HTTP-запиту.

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

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

  8. Тест на підвищення привілеїв: Перевірте на підвищення привілеїв, спробувавши завантажити файл, який можна використовувати для підвищення привілеїв, наприклад веб-оболонку або шкідливий плагін.

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

  1. Перевірте, чи існує у додатку функція завантаження файлів.

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

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

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

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

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

  7. Перевірте, чи має додаток належні дозволи на завантажені файли.

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

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

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

  11. Перевірте на підвищення привілеїв, спробувавши завантажити файл, який можна використовувати для підвищення привілеїв, наприклад веб-оболонку або шкідливий плагін.

  12. Документуйте всі висновки і надати рекомендації щодо усунення виявлених вразливостей.

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

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

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

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

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

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

  • Inspect Element – Вбудований інструмент браузера, який дозволяє переглядати та редагувати HTML, CSS і JavaScript, включаючи функціональність завантаження файлів.

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

  • Nessus – Сканер вразливостей, який включає в себе плагін для виявлення вразливостей, пов'язаних з неможливістю обмежити завантаження файлів.

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

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

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

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

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

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

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

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

  • OWASP Amass – Інструмент відображення мережі і сканування вразливостей з відкритим вихідним кодом, що включає в себе плагін для виявлення вразливостей, пов'язаних з обмеженням завантаження файлів.

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

  • Chrome DevTools – Вбудований інструмент Google Chrome, який дозволяє користувачам переглядати та редагувати HTML, CSS і JavaScript, включаючи функції завантаження файлів.

  • Firefox Developer Tools – Вбудований інструмент Firefox, який дозволяє користувачам переглядати та редагувати HTML, CSS і JavaScript, включаючи функції завантаження файлів.

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

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

  • Requestly – Розширення для браузера Chrome, Firefox і Edge, яке дозволяє користувачам змінювати HTTP-запити, включаючи завантаження файлів.

Середній бал CVSS Збій стека для обмеження завантаження файлів

Загальна система оцінки вразливостей (CVSS) являє собою основу для оцінки серйозності вразливостей в системі безпеки. Оцінка CVSS коливається від 0 до 10, причому 10 балів є найсерйознішими. Оцінка заснована на ряді факторів, включаючи вплив на конфіденційність, цілісність і доступність системи.

Оцінка CVSS за нездатність обмежити вразливість при завантаженні файлів може сильно відрізнятися в залежності від конкретної реалізації і серйозності впливу. Однак, в цілому, ці уразливості можна вважати уразливими високого ступеня серйозності з оцінкою CVSS 7.0 або вище.

Згідно Національної базі даних вразливостей (NVD), середній бал CVSS за нездатність обмежити вразливість при завантаженні файлів за останні 5 років (станом на 2023 рік) складає близько 8,5, що вважається критичним рівнем серйозності. Це вказує на те, що нездатність обмежити завантаження файлів є серйозною уразливістю, яка може вплинути на безпеку веб-додатки.

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

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

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

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

• CWE-352: Підробка міжсайтових запитів (CSRF) – Цей CWE пов'язаний із завантаженням файлу через шкідливий веб-сайт, який використовує облікові дані аутентифицированного користувача для виконання несанкціонованих дій.

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

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

• CWE-444: Непослідовна інтерпретація HTTP–запитів ("Контрабанда HTTP-запитів") - цей CWE пов'язаний із завантаженням файлу з використанням методів контрабанди HTTP-запитів, які можуть обходити засоби контролю безпеки і виконувати несанкціоновані дії.

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

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

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

Топ-10 CVE, пов'язаних з неможливістю обмежити завантаження файлів

• CVE-2019-16114 – В ATutor 2.2.4 зловмисник, який не пройшов перевірку автентичності, може змінити налаштування програми і змусити його використовувати створену ним базу даних, що дозволяє йому отримати доступ до додатка. Потім він може змінити каталог, в який додаток завантажує файли, що дозволяє йому досягти віддаленого виконання коду. Це відбувається тому, що install/include/header.php не обмежує певні зміни (для db_host, db_login, db_password і content_dir) в install/include/step5.php .

• CVE-2018-1306 – Код файлу PortletV3AnnotatedDemo Multipart Portlet war, представлений в Apache Pluto версії 3.0.0, може дозволити віддаленого зловмиснику отримати конфіденційну інформацію, яка викликана неможливістю обмежити інформацію про шляхи, надану під час завантаження файлу. Зловмисник може скористатися цією уразливістю для отримання конфігураційних даних та іншої конфіденційної інформації.

• CVE-2018-1000627 – Battelle V2I Hub 2.5.1 може дозволити віддаленого зловмиснику отримати конфіденційну інформацію, яка викликана неможливістю обмежити доступ до файлу ключа API. Зловмисник може скористатися цією вразливістю, щоб отримати поточний ключ API для отримання несанкціонованого доступу до системи.

• CVE-2017-18229 – У GraphicsMagick 1.3.26 була виявлена проблема. Уразливість при збої виділення була виявлена в функції ReadTIFFImage в coders / tiff.c, яка дозволяє зловмисникам викликати відмову в обслуговуванні через створений файл, оскільки розмір файлу неправильно використовується для обмеження виділення рядків сканування, смуг і листів.

• CVE-2017-16787 – Утиліта веб-установки пристроях Meinberg LANTIME з прошивкою до версії 6.24.004 дозволяє віддаленим зловмисникам читати довільні файли, використовуючи збій для обмеження доступу URL.

• CVE-2017-11357 – Прогрес користувальницького інтерфейсу для Telerik ASP.NET AJAX до версії R2 2017 SP2 не обмежує належним чином користувальницький введення в RadAsyncUpload, що дозволяє віддаленим зловмисникам виконувати довільну завантаження файлів або виконувати довільний код.

• CVE-2016-5661 – Цивільний портал доступу Accela Civic Platform покладається на клієнта для обмеження типів файлів для завантаження, що дозволяє віддаленим користувачам, які пройшли перевірку автентичності, виконувати довільний код з допомогою змінених параметрів _EventArgument і filename.

• CVE-2013-6737 – IBM System Storage Storwize V7000 Unified 1.3.x 1.4.x до версії 1.4.3.0 неправильно обмежує вміст файлу дампа при виявленні апаратного збою 1691, що дозволяє віддаленим користувачам, які пройшли перевірку автентичності, отримувати конфіденційні фрагменти клієнтських даних, зчитуючи цей файл після його копіювання.

• CVE-2013-5465 – IBM Maximo Asset Management 7.x до 7.1.1.7 LAFIX.20140319-0837, 7.1.1.11 до IFIX.20140323-0749, 7.1.1.12 до IFIX.20140321-1336, 7.5.x до 7.5.0.3 IFIX027 і 7.5.0.4 до IFIX011; SmartCloud Control Desk 7.x до 7.5.0.3 і 7.5.1.x до 7.5.1.2; і Tivoli IT Asset Management для ІТ, Tivoli Service Request Manager, Maximo Service Desk і база даних управління змінами та конфігураціями (CCMDB) 7.x до 7.1.1.7 LAFIX.20140319-0837, 7.1.1.11 до IFIX.20140207-1801 і 7.1.1.12 до IFIX.20140218-1510 не обмежують належним чином типи файлів під час завантаження, що дозволяє віддалено проходити перевірку автентичності користувачі повинні надавати невизначений вплив з допомогою неприпустимого типу.

• CVE-2011-2933 – Вразливість при завантаженні довільного файлу існує в admin/media/upload.php у WebsiteBaker 2.8.1 і більш ранніх версіях з-за неможливості обмежити завантажувані файли з розширеннями .htaccess, .php4, .php5 і .phtl.

Нездатність обмежити завантаження файлів подвиги

  • Завантаження файлів XSS: Зловмисники можуть завантажити файл, що містить шкідливий код, наприклад файл JavaScript або флеш-об'єкт, і обманом змусити користувачів завантажити та виконати його, що може призвести до межсайтовой скриптовой атаці (XSS).

  • Віддалене виконання коду: Зловмисники можуть завантажити файл, що містить шкідливий код, який може бути виконаний на сервері, що може призвести до віддаленого виконання коду (RCE) і поставити під загрозу систему.

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

  • Підробка запитів на стороні сервера (SSRF): Зловмисники можуть завантажити файл, що містить URL-адреса, що вказує на внутрішній ресурс на сервері, який може бути використаний для виконання атак з підробкою запитів на стороні сервера (SSRF).

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

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

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

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

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

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

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

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

Використання уразливого веб-додатки: наприклад, DVWA або Mutillidae, щоб попрактикуватися у використанні вразливостей при завантаженні файлів.

Використовуйте лабораторію тестування на проникнення: наприклад, HackTheBox або TryHackMe, щоб попрактикуватися у використанні вразливостей при завантаженні файлів у контрольованому середовищі.

Беріть участь у викликах CTF: вони зосереджені на безпеки веб-додатків, щоб практикувати виявлення і використання вразливостей при завантаженні файлів.

Використовуйте інструменти: наприклад, Burp Suite або OWASP ZAP для сканування вразливостей при завантаженні файлів і практики їх використання.

За нездатність дослідження обмежити завантаження файлів

Читайте про Топ-10 OWASP: OWASP Top 10 - це список найбільш важливих загроз безпеки веб-додатків, і нездатність обмежити завантаження файлів є однією з них. Прочитайте про різні вразливості і дізнайтеся, як їх протестувати.

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

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

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

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

Пройдіть онлайн-курси: Пройдіть онлайн-курси з безпеки веб-додатків, наприклад, пропоновані Udemy, Coursera або SANS, щоб дізнатися більше про неможливість обмежити завантаження файлів і інших ризики безпеки веб-додатків.

Книги з оглядом відмови обмежити завантаження файлів

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

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

Злом веб-додатків: Серія "Мистецтво злому", тестування безпеки на проникнення для сучасних DevOps і хмарних середовищ Майк Шема – У цій книзі представлений огляд безпеки веб-додатків, включаючи відмову від обмеження завантаження файлів, з практичними рекомендаціями і практичними вправами.

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

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

Веб-злом 101: Як заробити гроші, зламуючи етично Пітер Яворські – Ця книга являє собою введення в злом веб-додатків, включаючи відмову обмежити завантаження файлів, з практичними рекомендаціями та прикладами з реального світу.

Тест на временные проблемы: Проект Open Web Application Security Project – В цьому посібнику міститься повний огляд тестування безпеки веб-додатків, включаючи відмову обмежити завантаження файлів, з практичними рекомендаціями і докладними поясненнями.

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

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

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

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

  1. Команди оболонки у вигляді імен файлів: <?php system($_GET['cmd']); ?> збережений file.php.jpg

  2. Завантаження файлів з подвійними розширеннями: file.php.jpg чи file.php.gif

  3. Завантаження файлів без розширення: file.php чи file

  4. Завантаження файлів з неприпустимими розширеннями: file.php.jpg чи file.php ;.jpg

  5. Завантаження файлів з нульовим байтом: file.php.jpg

  6. Завантаження файлів з шкідливим вмістом: <?php echo "Hello world!"; ?>

  7. Завантаження файлів з PHP-кодом, вбудованим в зображення: <?php echo "Hello world!"; ?> збережений file.jpg.php

  8. Завантаження файлів за допомогою команд командного рядка в метаданих: exiftool -Comment='<?php echo shell_exec($_GET['cmd']); ?>' image.jpg

  9. Завантаження файлів з PHP-кодом в метаданих: exiftool -Comment='<?php echo "Hello world!"; ?>' image.jpg

  10. Завантаження файлів з великими розмірами файлів може призвести до відмови в обслуговуванні: dd if=/dev/zero of=файл bs= 1M кількість = 10000 (створює файл розміром 10 ГБ)

Як бути захищеним від відмови обмежити завантаження файлів

  1. Використовуйте перевірку на стороні сервера, щоб обмежити типи і розміри файлів.

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

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

  4. Використайте заголовок Content-Disposition, щоб забезпечити, щоб завантажені файли не розглядалися як виконуються.

  5. Використовуйте політику безпеки вмісту (CSP), щоб обмежити, звідки файли можуть бути завантажені і виконані.

  6. Очистіть імена файлів і метаданих, щоб видалити потенційно шкідливий контент.

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

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

  9. Використовуйте брандмауери веб-додатків (WAF) для виявлення і блокування атак.

  10. Оновлюйте все програмне забезпечення та плагіни з допомогою останніх виправлень безпеки, щоб запобігти використання відомих вразливостей.

Висновок

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

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

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

Інші Послуги

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

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