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

Vulnerability Assessment as a Service (VAaaS)
Tests systems and applications for vulnerabilities to address weaknesses.

Нездатність обмежити завантаження файлів відноситься до уразливості безпеки у веб-додатку, коли додатку не вдається належним чином обмежити тип, розмір або кількість файлів, які можуть бути завантажені користувачами. Це потенційно може призвести до завантаження і виконання на сервері шкідливих файлів, таких як шкідливі програми або скрипти, що призводить до ряду проблем безпеки, включаючи витік даних, компрометацію сервера і атаки типу "відмова в обслуговуванні".
Приклад уразливого коду на різних мовах програмування:
• в PHP
Поширеною помилкою є використання $_FILES $_FILES глобальна змінна для прямого доступу до завантаженого файлу без виконання будь-якої перевірки. Ось один з прикладів:
У цьому прикладі немає перевірки типу файлу, розміру або кількості завантажених файлів. Це робить додаток уразливим для атак, коли зловмисник може завантажити шкідливі файли на сервер.
• в 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.
Завантаження шкідливого плагіна або розширення
Зловмисник може завантажити шкідливий плагін або розширення, яке додає функціональність веб-додатком. Плагін або розширення можуть бути розроблені для підвищення привілеїв, використовуючи уразливість у веб-додатку. Наприклад, зловмисник може завантажити шкідливий плагін, який дозволяє йому виконувати довільний код від імені користувача веб-сервера.
Загальна методологія та контрольний список за нездатність обмежити завантаження файлів
Методологія:
Визначте функціональність завантаження файлів: Першим кроком є визначення функціональності завантаження файлів в додатку. Це можна зробити шляхом перевірки вихідного коду, перевірки функціональності додатку або використання інструменту веб-проксі для перехоплення запитів.
Перевірка на наявність дозволених типів файлів: Перевірте дозволені типи файлів програми і переконайтеся, що для завантаження можна тільки дозволені типи файлів. Спробуйте завантажити різні типи файлів, такі як виконувані файли, скрипти або інші потенційно небезпечні файли і подивіться, відхиляє їх додаток.
Перевірка на наявність обмежень щодо розміру файлу: Перевірте, чи має додаток обмеження на розмір файлу, і переконайтеся, що вони дотримуються. Спробуйте завантажити файли, розмір яких перевищує допустимий, і подивіться, чи відхиляє їх застосування.
Тест для перевірки на стороні сервера: Перевірте, чи виконує додаток перевірку завантажених файлів на стороні сервера. Спробуйте завантажити файли, що містять неприпустимий вміст, наприклад, файли з неправильними розширеннями або файли з неправильними заголовками, і подивіться, чи відхиляє їх застосування.
Тест для перевірки на стороні клієнта: Перевірте, чи виконує додаток перевірку завантажених файлів на стороні клієнта. Спробуйте обійти перевірку на стороні клієнта, змінивши код на стороні клієнта або використовуючи інструмент для управління HTTP-запиту.
Тест на маніпулювання ім'ям файлу: Перевірте, чи виконує додаток маніпуляції з іменами файлів у завантажених файлах. Спробуйте завантажити файли зі спеціальними символами або з довгим ім'ям файлу, щоб перевірити, чи виконує додаток належну очистку.
Перевірка на наявність неправильних налаштувань безпеки: Перевірте, чи немає у додатку будь-яких неправильних налаштувань безпеки, які можуть дозволити зловмиснику обійти обмеження на завантаження файлів. Це може включати обхід каталогу, слабкі дозволу для завантажених файлів або інші неправильні налаштування.
Тест на підвищення привілеїв: Перевірте на підвищення привілеїв, спробувавши завантажити файл, який можна використовувати для підвищення привілеїв, наприклад веб-оболонку або шкідливий плагін.
Контрольний список:
Перевірте, чи існує у додатку функція завантаження файлів.
Перевірте, чи є в додатку обмеження на дозволені типи файлів, які можуть бути завантажені.
Перевірте, чи є в додатку обмеження на розмір файлу, який може бути завантажений.
Перевірте, чи виконує додаток перевірку завантажених файлів на стороні сервера.
Перевірте, чи виконує додаток перевірку завантажених файлів на стороні клієнта.
Перевірте, чи виконує додаток маніпуляції з іменами файлів у завантажених файлах.
Перевірте, чи має додаток належні дозволи на завантажені файли.
Перевірте, чи зберігає додаток завантажені файли в безпечному місці.
Перевірте, чи є в додатку відповідні засоби контролю безпеки, такі як перевірка достовірності та контроль доступу, для доступу до завантажених файлів.
Перевірте, чи немає у додатку неправильних налаштувань безпеки, таких як обхід каталогу, які можуть дозволити зловмиснику обійти обмеження на завантаження файлів.
Перевірте на підвищення привілеїв, спробувавши завантажити файл, який можна використовувати для підвищення привілеїв, наприклад веб-оболонку або шкідливий плагін.
Документуйте всі висновки і надати рекомендації щодо усунення виявлених вразливостей.
Набір інструментів для експлуатації Нездатність обмежити завантаження файлів
Ручні Інструменти:
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 для фахівців з безпеки, включаючи практичні приклади використання вразливостей веб-додатків, включаючи нездатність обмежити завантаження файлів.
Практичний пошук помилок для тестувальників на проникнення: практичне керівництво, що допомагає етичним хакерам виявляти недоліки безпеки веб-додатків Джозеф Маршалл – Ця книга являє собою практичне керівництво по пошуку і використанню вразливостей веб-додатків, включаючи відмову обмежити завантаження файлів, з реальними прикладами і практичними вправами.
Основи веб-злому: інструменти і методи для атаки в Інтернеті автор: Джош Паулі – Ця книга являє собою введення в безпеку веб-додатків, включаючи відмову від обмеження завантаження файлів, з практичними рекомендаціями та покроковими інструкціями.
Список корисних навантажень Нездатність обмежити завантаження файлів
Команди оболонки у вигляді імен файлів:
<?php system($_GET['cmd']); ?>збереженийfile.php.jpgЗавантаження файлів з подвійними розширеннями:
file.php.jpgчиfile.php.gifЗавантаження файлів без розширення:
file.phpчиfileЗавантаження файлів з неприпустимими розширеннями:
file.php.jpgчиfile.php ;.jpgЗавантаження файлів з нульовим байтом:
file.php.jpgЗавантаження файлів з шкідливим вмістом:
<?php echo "Hello world!"; ?>Завантаження файлів з PHP-кодом, вбудованим в зображення:
<?php echo "Hello world!"; ?>збереженийfile.jpg.phpЗавантаження файлів за допомогою команд командного рядка в метаданих:
exiftool -Comment='<?php echo shell_exec($_GET['cmd']); ?>' image.jpgЗавантаження файлів з PHP-кодом в метаданих:
exiftool -Comment='<?php echo "Hello world!"; ?>' image.jpgЗавантаження файлів з великими розмірами файлів може призвести до відмови в обслуговуванні:
dd if=/dev/zero of=файл bs= 1M кількість = 10000(створює файл розміром 10 ГБ)
Як бути захищеним від відмови обмежити завантаження файлів
Використовуйте перевірку на стороні сервера, щоб обмежити типи і розміри файлів.
Використовуйте бібліотеку завантаження файлів, призначену для безпечної обробки завантажених файлів.
Перейменуйте завантажені файли в унікальне ім'я або хеш, щоб запобігти запуск шкідливих файлів.
Використайте заголовок Content-Disposition, щоб забезпечити, щоб завантажені файли не розглядалися як виконуються.
Використовуйте політику безпеки вмісту (CSP), щоб обмежити, звідки файли можуть бути завантажені і виконані.
Очистіть імена файлів і метаданих, щоб видалити потенційно шкідливий контент.
Використовуйте дозволу файлової системи, щоб обмежити доступ до завантажених файлів і каталогів.
Використовуйте антивірусне програмне забезпечення для перевірки завантажених файлів на наявність вірусів і шкідливих програм.
Використовуйте брандмауери веб-додатків (WAF) для виявлення і блокування атак.
Оновлюйте все програмне забезпечення та плагіни з допомогою останніх виправлень безпеки, щоб запобігти використання відомих вразливостей.
Висновок
Нездатність обмежити завантаження файлів це серйозна уразливість, яка може призвести до виконання довільного коду на сервері, підвищення привілеїв і витоку даних. Це відбувається, коли веб-додатком не вдається належним чином перевірити і обмежити типи, розміри та вміст файлів, що завантажуються користувачами. Зловмисники можуть скористатися цією уразливістю, завантажуючи шкідливі файли, які можуть бути запущені сервером, обходячи заходи безпеки і отримуючи несанкціонований доступ до конфіденційної інформації.
Щоб знизити ризик нездатності обмежити вразливість при завантаженні файлів, веб-розробникам слід використовувати комбінацію таких методів, як перевірка на стороні сервера, бібліотеки завантаження файлів, перейменування завантажених файлів, використання заголовків для розміщення вмісту, політики безпеки вмісту і очищення імен файлів і метаданих. Дозволи файлової системи, антивірусне програмне забезпечення, брандмауери веб-додатків і оновлення програмного забезпечення за допомогою виправлень безпеки також можуть допомогти знизити ризик цього типу вразливостей.
Тестування безпеки веб-додатки повинно включати ретельне тестування на предмет нездатність обмежити вразливість при завантаженні файлів, щоб виявити будь-які недоліки в функціональності програми для завантаження файлів. Веб-розробникам важливо бути в курсі останніх тенденцій в області безпеки, передових практик і методів захисту від цього і інших типів вразливостей веб-додатків.
Інші Послуги
Insomnia Security Scanner
AI-powered web application security scanner by CQR. Automated vulnerability discovery, exploit verification, and detailed reporting for modern applications.
Дізнатися більшеЗахист інфраструктури CRYEYE
Аудит безпеки за допомогою CryEye забезпечує інформаційну безпеку підприємства, захищаючи всю інфраструктуру.
Дізнатися більшеТестування на проникнення
Знайдіть вразливості у всій інфраструктурі вашого бізнесу раніше, ніж це зроблять хакери! У межах консалтингу з тестування на проникнення ми підберемо методи пентестів та інші індивідуальні рекомендації з кібербезпеки для вашого бізнесу.
Дізнатися більшеСоціальна Інженерія
Simulate real-world phishing, vishing, and pretexting attacks to measure and improve your team's security awareness and response capabilities.
Дізнатися більшеТестування Продуктивності
Усі види тестування навантаження і продуктивності вашої системи від компанії CQR, що спеціалізується на онлайн-безпеці.
Дізнатися більшеAI-Powered Vulnerability Assessment
Leverage artificial intelligence to discover, prioritize, and remediate vulnerabilities across your digital assets faster and more accurately than traditional scanners.
Дізнатися більшеCloud Security Audit (AWS / GCP / Azure)
Comprehensive security review of your cloud environments — IAM policies, network controls, data exposure, and misconfigurations across all major cloud platforms.
Дізнатися більшеDevSecOps Integration
Embed security into every stage of your CI/CD pipeline. Automated SAST, DAST, SCA, and secret scanning so vulnerabilities are caught before they reach production.
Дізнатися більшеAPI Security Testing
In-depth testing of REST, GraphQL, and SOAP APIs for authentication flaws, authorization bypasses, injection vulnerabilities, and data leakage risks.
Дізнатися більшеMobile Application Penetration Testing
Manual and automated security testing for iOS and Android applications — reverse engineering, runtime analysis, traffic interception, and backend API assessment.
Дізнатися більшеIoT Security Assessment
Evaluate firmware, communication protocols, cloud backends, and physical interfaces of IoT devices to identify vulnerabilities before attackers do.
Дізнатися більшеBlockchain & Smart Contract Audit
Formal verification and manual code review of smart contracts on Ethereum, Solana, and other chains. Detect reentrancy, overflow, and logic flaws before deployment.
Дізнатися більшеRed Team Operations
Advanced adversary simulation using real attacker TTPs (MITRE ATT&CK) to test your detection, response, and overall security posture under realistic conditions.
Дізнатися більшеThreat Intelligence & Monitoring
Continuous monitoring of threat feeds, dark web, and attacker infrastructure to provide actionable intelligence specific to your organization and industry.
Дізнатися більшеZero Trust Architecture Review
Assess and design your Zero Trust security model — identity verification, micro-segmentation, least-privilege access, and continuous validation controls.
Дізнатися більшеCompliance Consulting (PCI DSS / SOC 2 / GDPR)
Expert guidance to achieve and maintain compliance with major security frameworks. Gap analysis, remediation roadmaps, and audit-readiness support.
Дізнатися більшеDark Web Monitoring
Continuous surveillance of dark web forums, marketplaces, and breach databases for leaked credentials, sensitive data, or mentions of your organization.
Дізнатися більшеPhishing Simulation & Awareness Training
Controlled phishing campaigns combined with interactive security awareness training to build a human firewall across your entire organization.
Дізнатися більшеSupply Chain Security Audit
Assess third-party vendor risks, open-source dependencies, and software supply chain integrity to prevent attacks like SolarWinds and Log4Shell.
Дізнатися більшеContainer & Kubernetes Security
Security review of Docker images, Kubernetes clusters, RBAC policies, network policies, and runtime configurations to harden your container infrastructure.
Дізнатися більшеWeb Application Firewall (WAF) Deployment
Professional WAF setup, rule tuning, and ongoing management to block SQL injection, XSS, CSRF, and other OWASP Top 10 threats in real time.
Дізнатися більшеBug Bounty Program Management
Full lifecycle management of your bug bounty program — scope definition, researcher coordination, triage, validation, and remediation tracking.
Дізнатися більшеOSINT Investigation Services
Open-source intelligence gathering on individuals, organizations, and infrastructure. Ideal for pre-engagement recon, fraud investigation, and competitive analysis.
Дізнатися більшеDigital Forensics & Incident Response
Rapid response to security breaches — evidence collection, malware analysis, attacker timeline reconstruction, and actionable remediation recommendations.
Дізнатися більше