OS-IS / ai201-evchev

0 stars 0 forks source link

CW6 #18

Closed EvchevDenis closed 2 weeks ago

EvchevDenis commented 2 weeks ago

Запитання №1

Опишіть ПЗ, в якому знайдено вразливість:

DOLIBARR ERP & CRM: URL-посилання.

Dolibarr ERP & CRM - це сучасний програмний пакет, який допомагає керувати діяльністю організації (контакти, пропозиції, рахунки, замовлення, запаси, порядок денний, людські ресурси, ecm, виробництво...). Це програмне забезпечення з відкритим вихідним кодом (написане на PHP з доповненнями JavaScript), призначене для малих, середніх і великих компаній, фондів і фрілансерів.

Запитання №2

Опишіть знайдену вразливість , переклавшу на українську розділ Description.

Атаки SQL-ін'єкцій можуть призвести до несанкціонованого доступу до конфіденційних даних, таких як паролі, дані кредитних карток або особиста інформація користувачів. Багато гучних витоків даних за останні роки були результатом атак SQL-ін'єкцій, що призвело до втрати репутації та штрафів з боку регуляторних органів. У деяких випадках зловмисник може отримати постійний бекдор в системи організації, що призводить до довготривалої компрометації, яка може залишатися непоміченою протягом тривалого періоду. Це стосується лише версій 16.0.1 та 16.0.2. На версії 16.0.0 і нижче та 16.0.3 і вище це не впливає

Запитання №3

Вразливий код, приклад 1:

$sql .= " AND p.socialnetworks REGEXP '\"".$db->escapeforlike($db->escape($key))."\":\"[^\"]*".$db->escapeforlike($db->escape($searchkeyinjsonformat))."'";

Його виправлення:

$sql .= " AND p.socialnetworks REGEXP '\"".$db->escape($db->escapeforlike($key))."\":\"[^\"]*".$db->escape($db->escapeforlike($searchkeyinjsonformat))."'";

Вразливий код, приклад 2:

$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.title LIKE '%".$db->escapeforlike($db->escape($searchstring))."%' OR wp.description LIKE '%".$db->escapeforlike($db->escape($searchstring))."%'";
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.keywords LIKE '".$db->escapeforlike($db->escape($searchstring)).",%' OR wp.keywords LIKE '% ".$db->escapeforlike($db->escape($searchstring))."%'";

Його виправлення:

$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.title LIKE '%".$db->escape($db->escapeforlike($searchstring))."%' OR wp.description LIKE '%".$db->escape($db->escapeforlike($searchstring))."%'";
$searchalgo .= ($searchalgo ? ' OR ' : '')."wp.keywords LIKE '".$db->escape($db->escapeforlike($searchstring)).",%' OR wp.keywords LIKE '% ".$db->escape($db->escapeforlike($searchstring))."%'";

Запитання №4

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

Різні механізми санітарної обробки, такі як magic_quotes() та addslashes(), не можуть повністю запобігти наявності або використанню SQLi уразливості, оскільки певні методи, що використовуються в поєднанні з умовами навколишнього середовища, можуть дозволити зловмисникам використати уразливість. Замість цього, якщо підготовлені оператори не використовуються, рекомендується використовувати перевірку вводу, при якій неправильний ввід відхиляється, а не екранується або модифікується.

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

На останньому етапі, для успішного запобігання можливим атакам на DNS, адміністратор повинен переконатися, що виконання всіх непотрібних системних підпрограм заблоковано. Якщо це не вдасться, зловмисники не зможуть запустити ті, що можуть спровокувати DNS-запити.

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

У цій статті було показано, як зловмисники можуть використовувати техніку обходу DNS для значного прискорення отримання даних, коли можна використовувати лише відносно повільні методи SQLi. Крім того, кількість необхідних запитів до вразливого веб-сервера різко зменшується, що робить його менш шумним.

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

oleksandrblazhko commented 2 weeks ago

5 балів