03 Кві, 2023

Впровадження таких символів SQL

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

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

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

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


у php:

				
					$uname = $_GET['username'];
$sql = "SELECT * FROM users WHERE username LIKE '%" . $uname . "%'";
$result = mysqli_query($conn, $sql);

				
			

 

У цьому прикладі користувальницький введення параметра 'username' безпосередньо об'єднується в SQL-запит без належної перевірки введення, що дозволяє зловмисникові вводити символи підстановки і потенційно виконувати атаку з використанням SQL-символів знаків.

• В Java:

				
					String username = request.getParameter("username");
String query = "SELECT * FROM users WHERE username LIKE '%" + username + "%'";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);

				
			

 

Цей Java-код страждає від тієї ж проблеми, що і приклад PHP. Вхідні дані, отримані від параметра 'username', безпосередньо об'єднуються в SQL-запит, дозволяючи зловмиснику вводити символи підстановки і виконувати атаку з використанням SQL-символів знаків.

• в Python:

				
					username = request.args.get('username')
query = "SELECT * FROM users WHERE username LIKE '%" + username + "%'"
cursor.execute(query)
result = cursor.fetchall()

				
			

 

Аналогічно, цей код на Python об'єднує інтерфейс enter 'username' безпосередньо в SQL-запит без належної перевірки вводу, що робить його уразливим для атак з використанням символів знаків SQL.

Приклади використання SQL-символів знаків

Припустимо, у нас є уразливий SQL-запит, який приймає вхідні дані від користувача для пошуку продукту в базі даних. SQL-запит виглядає наступним чином:

				
					SELECT * FROM products WHERE name LIKE '%user_input%';

				
			

 

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

  • Витяг даних: зловмисник може використовувати символи узагальнення для отримання даних з бази даних. Наприклад, якщо зловмисник введе 'a%'; ВИБЕРІТЬ пароль ВІД користувачів, ДЕ username = 'admin' SQL-запит стане:

				
					SELECT * FROM products WHERE name LIKE 'a%'; SELECT password FROM users WHERE username = 'admin%';

				
			

Друга частина запиту буде виконана як окремий оператор і поверне пароль користувача 'admin'.

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

				
					SELECT * FROM users WHERE username = 'user_input' AND password = 'user_input';

				
			


Зловмисник може ввести знак підстановки в якості пароля, щоб обійти перевірку автентичності:

				
					SELECT * FROM users WHERE username = 'admin' AND password LIKE '%';

				
			

 

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

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

				
					DELETE FROM products WHERE id = 'user_input';

				
			

 

Зловмисник може ввести знак підстановки в якості ідентифікатора продукту, щоб видалити всі продукти з бази даних:

				
					DELETE FROM products WHERE id LIKE '%';

				
			

 

Цей запит видаляє всі продукти з бази даних.

Методи підвищення привілеїв для впровадження таких символів SQL

Запит об'єднання:

Зловмисник може використовувати запит ОБ'ЄДНАННЯ для об'єднання результатів двох або більше операторів SELECT. Цей метод може бути використаний для вилучення даних з таблиць бази даних або для підвищення привілеїв шляхом висунення себе за користувача з більш високими привілеями. Наприклад, зловмисник може використовувати наступний запит для отримання хешей паролів всіх користувачів та підвищення привілеїв:

				
					SELECT username, password FROM users WHERE username = 'admin' UNION SELECT username, password FROM users WHERE username <> 'admin';

				
			

 

Цей запит об'єднає результати двох операторів SELECT і поверне хеші паролів всіх користувачів, включаючи адміністратора.

Підзапит:

Зловмисник може використовувати підзапит для підвищення привілеїв, минаючи автентифікації. Наприклад, якщо додаток перевіряє ім'я користувача і пароль наступним чином:

				
					SELECT * FROM users WHERE username = 'user_input' AND password = 'user_input';

				
			

 

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

				
					SELECT * FROM users WHERE username = 'admin' AND password = (SELECT password FROM users WHERE username = 'admin');

				
			

 

Цей запит поверне дані для користувача 'admin', навіть якщо зловмисник не знає пароля для цього користувача.

Атаки, засновані на часі:

Зловмисник може використовувати атаки, засновані на часі, для підвищення привілеїв шляхом затримки відповіді на SQL-запит. Наприклад, зловмисник може використовувати наступний запит, щоб затримати відповідь на 10 секунд:

				
					SELECT * FROM products WHERE name LIKE 'user_input%' AND sleep(10);

				
			

 

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

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

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

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

  2. Перевірте, чи не користувальницькі вхідні дані безпосередньо об'єднані в SQL-запит без належної перевірки і очищення. Шукайте знаки знаки, такі як % та _, які можна використовувати для впровадження таких символів SQL.

  3. Протестуйте кожне поле вводу з різними вхідними значеннями, щоб перевірити, чи не повертає SQL-запит несподівані результати. Використовуйте знаки знаки, такі як % та _, для перевірки впровадження таких символів SQL. Шукайте помилки, несподівані результати або повільне час відгуку, які можуть вказувати на вразливість.

  4. Використовуйте інструменти, такі як SQLmap або інші сканери вразливостей, для перевірки впровадження таких символів SQL. Ці інструменти можуть автоматично виявляти і використовувати уразливості, заощаджуючи час і зусилля.

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

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

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

  8. Регулярно переглядайте і оновлюйте засоби контролю безпеки, щоб запобігти уразливості і бути в курсі останніх загроз і методів атак.

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

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

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

  3. Перевірте, чи використовуються поля введення безпосередньо в SQL-запитах без належної перевірки і очищення. Шукайте знаки знаки, такі як % та _, які можна використовувати для впровадження таких символів SQL.

  4. Протестуйте кожне поле вводу з різними вхідними значеннями, щоб перевірити, чи не повертає SQL-запит несподівані результати. Використовуйте знаки знаки, такі як % та _, для перевірки впровадження таких символів SQL. Шукайте помилки, несподівані результати або повільне час відгуку, які можуть вказувати на вразливість.

  5. Перевірте поля пошуку, ввівши в поле пошуку знак підстановки, такий як %, щоб перевірити, чи повертає SQL-запит всі записи.

  6. Протестуйте форми входу, ввівши цей символ, такий як %, в поля ім'я користувача та пароль, щоб перевірити, чи повертає SQL-запит які-небудь записи.

  7. Використовуйте інструменти, такі як SQLmap або інші сканери вразливостей, для перевірки впровадження таких символів SQL. Ці інструменти можуть автоматично виявляти і використовувати уразливості, заощаджуючи час і зусилля.

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

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

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

  11. Регулярно переглядайте і оновлюйте засоби контролю безпеки, щоб запобігти уразливості і бути в курсі останніх загроз і методів атак.

Набір інструментів для експлуатації Впровадження таких символів SQL

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

  • SQLmap – Популярний інструмент з відкритим вихідним кодом для автоматизації виявлення і використання SQL-ін'єкцій. Він може виявляти широкий спектр методів впровадження, а також може виявляти уразливості, такі як впровадження таких символів SQL.

  • Havij – Комерційний інструмент для автоматизованого впровадження SQL і використання SQL-символів знаків. Він може автоматично виявляти і використовувати уразливості SQL-ін'єкцій, що робить його популярним серед тестувальників на проникнення.

  • Sqlninja – Інструмент, призначений для використання вразливостей SQL-ін'єкцій у базах даних MySQL. Він може бути використаний як для автоматичного, так і для ручного тестування вразливостей SQL-ін'єкцій.

  • SQLMate – Легкий інструмент для ручного виявлення та експлуатації вразливостей SQL-ін'єкцій. Він підтримує різні методи, включаючи впровадження SQL-символів знаків.

  • DotDotPwn – Інструмент для автоматичного тестування вразливостей обходу каталогів і включення файлів, який може бути використаний для виявлення вразливостей SQL-ін'єкції SQL-символів знаків.

  • Absinthe – Потужний інструмент для впровадження SQL і SQL wildcard injection з широким набором функцій, включаючи можливість автоматизувати виявлення та експлуатацію вразливостей.

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

  • SQLsus – Полегшений інструмент для впровадження SQL-ін'єкцій і SQL wildcard injection, який можна використовувати для ручного тестування та аналізу вразливостей SQL-ін'єкцій.

  • Blind SQL Injector – Інструмент для ручного тестування та експлуатації вразливостей з використанням сліпих SQL-ін'єкцій, який може бути використаний для виявлення вразливостей з використанням символів знаків SQL.

  • Burp Suite – Популярний інструмент тестування безпеки веб-додатків, який може використовуватися для ручного виявлення та експлуатації вразливостей SQL injection та SQL wildcard injection.

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

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

  • Acunetix – Інструмент тестування безпеки веб-додатків, який може виявляти і використовувати SQL injection уразливості, включаючи SQL wildcard injection.

  • Netsparker – Автоматизований інструмент тестування безпеки веб-додатків, який може виявляти і використовувати SQL injection уразливості, включаючи SQL wildcard injection.

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

  • Qualys – Хмарний інструмент управління уразливими, який може виявляти і використовувати SQL injection уразливості, включаючи SQL wildcard injection.

  • WebInspect – Автоматизований інструмент тестування безпеки веб-додатків, який може виявляти і використовувати SQL injection уразливості, включаючи SQL wildcard injection.

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

  • Nikto – Популярний сканер веб-сервер з відкритим вихідним кодом, який може виявляти уразливості, такі як SQL-ін'єкція і SQL-знак підстановки.

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

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

Середній бал CVSS впровадження таких символів stack SQL

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

Оцінка CVSS для вразливостей з впровадженням символів знаків SQL може варіюватися залежно від конкретних обставин місця і впливу, яке вона справляє на систему. Однак, як правило, проблеми, пов'язані з впровадженням символів знаків SQL, вважаються уразливими високого ступеня серйозності, які можуть вплинути на безпеку системи.

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

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

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

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

• CWE-77: Неправильна нейтралізація спеціальних елементів, використовуваних в Команді ('Командна ін'єкція') – Цей CWE пов'язаний з атаками з використанням команд, які можуть використовуватися для виконання довільних команд в системі.

• CWE-78: Неправильна нейтралізація спеціальних елементів, використовуваних в команді операційної системи ('Впровадження команди операційної системи') – Цей CWE схожий на CWE-77, але конкретно відноситься до атак на команди операційної системи.

• CWE-601: Перенаправлення URL на ненадійний сайт ('Open Redirect') – Цей CWE пов'язаний з атаками перенаправлення URL-адрес, які можуть використовуватися для перенаправлення користувачів на шкідливий веб-сайт, який може виконувати атаки з використанням SQL-ін'єкцій.

• CWE-918: Підробка запиту на стороні сервера (SSRF) – Цей CWE пов'язаний з атаками SSRF, які можуть використовуватися для обходу контролю доступу і виконання атак з використанням SQL-ін'єкцій.

• CWE-943: Неправильна нейтралізація спеціальних елементів в логіці запиту даних – цей CWE пов'язаний з атаками з використанням SQL-ін'єкцій, які конкретно пов'язані з логікою запиту даних.

• CWE-1145: SQL-ін'єкція: гібернація – це CWE пов'язаний з атаками SQL-ін'єкцій, націленими на Hibernate, популярну платформу ORM на основі Java.

• CWE-1157: SQL-ін'єкція: Node.js – Цей CWE пов'язаний з атаками SQL-ін'єкцій, які націлені Node.js , популярна середовище виконання JavaScript.

• CWE-1254: Неправильна нейтралізація спеціальних елементів, використовуваних у запиті LDAP ('Впровадження LDAP') – Цей CWE пов'язаний з атаками з використанням LDAP-ін'єкцій, які можуть використовуватися для виконання довільних запитів LDAP і потенційно для виконання атак з використанням SQL-ін'єкцій.

CVE, пов'язані з впровадженням символів знаків SQL

• CVE-2020-13921 – ** Вирішено ** Тільки при використанні H2 / MySQL / TiDB в якості сховища Apache SkyWalking існує вразливість SQL-ін'єкції у випадках запиту з підстановки.

Впровадження таких символів SQL подвиги

  • Витяг даних з таблиці: Зловмисник може ввести знак підстановки (*) в SQL-запит, щоб отримати всі дані з таблиці, навіть якщо додаток було розроблено тільки для вилучення підмножини даних. Наприклад, якщо вихідним запитом було "виберіть ім'я користувача, вік яких > 18", зловмисник міг ввести знак підстановки, щоб виконати запит "ВИБРАТИ * З користувачів, вік яких > 18", який отримав би всі дані з таблиці "користувачі".

  • Зміна даних у таблиці: Зловмисник може ввести знак підстановки в інструкції UPDATE, щоб змінити кілька рядків даних в таблиці, навіть якщо додаток було розроблено тільки для зміни одного рядка за раз. Наприклад, якщо вихідний запит був "ОНОВИТИ статус набору користувачів = 'неактивний', ДЕ user_id = 123", зловмисник міг ввести знак підстановки, щоб виконати запит "ОНОВИТИ статус НАБОРУ користувачів = 'неактивний', ДЕ user_id ЯК '1%'", що змінило статус всіх користувачів, чий user_id починається з цифри 1.

  • Витяг даних з декількох таблиць: Зловмисник може ввести знак підстановки в інструкцію JOIN для отримання даних з декількох таблиць, навіть якщо додаток було розроблено тільки для отримання даних з однієї таблиці. Наприклад, якщо вихідний запит був “ВИБЕРІТЬ ім'я, адресу ЗІ списку користувачів, які ПРИЄДНУЮТЬСЯ ДО адрес В users.user_id = addresses.user_id ДЕ users.age > 18", зловмисник міг ввести знак підстановки, щоб виконати запит "ВИБЕРІТЬ * ІЗ списку користувачів, які приєднуються До адрес В users.user_id = addresses.user_id ДЕ users.age > 18", який отримав би всі дані з таблиці "користувачі" і "адреси".

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

Практикуючись в тестуванні на Впровадження таких символів SQL

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

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

Корисне навантаження для вприскування у ремесло: створюйте корисні навантаження для впровадження, які включають знаки знаки, такі як % та _. Ці корисні навантаження можуть бути використані для вилучення всіх даних таблиці, редагування даних в таблиці або виконання інших атак з використанням SQL-ін'єкцій.

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

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

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

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

Для вивчення впровадження SQL-символів знаків

На веб-сайті OWASP (Open Web Application Security Project) є докладне керівництво по впровадженню SQL, включаючи інформацію про впровадження символів знаків SQL і про те, як його протестувати.

Шпаргалка по впровадженню SQL на веб-сайті PentestMonkey містить інформацію про впровадження символів знаків SQL, а також про інші методи впровадження.

Покрокове керівництво по атаці з використанням SQL-ін'єкцій на веб-сайті PortSwigger включає покрокове керівництво по тестуванню на впровадження SQL, включаючи впровадження таких символів SQL.

Академія веб-безпеки на веб-сайті PortSwigger включає інтерактивні лабораторні роботи та вправи, які допоможуть вам попрактикуватися у тестуванні на впровадження SQL, включаючи впровадження таких символів SQL.

Доступно кілька книг з SQL-ін'єкцій, таких як "Атаки і захист з використанням SQL-ін'єкцій" Джастіна Кларка і "SQL-ін'єкція: атаки і захист" Сумита Сиддхарта. Ці книги містять детальну інформацію про впровадження SQL, включаючи впровадження таких символів SQL.

Онлайн-курси, такі як пропоновані Udemy, Coursera і Pluralsight, можуть надати структуровані можливості навчання для вивчення SQL-ін'єкцій і SQL-символів знаків.

Книги з оглядом впровадження таких символів SQL

Атаки з використанням SQL-ін'єкцій і захист автор: Джастін Кларк: Ця книга являє собою вичерпне керівництво по атак з використанням SQL-ін'єкцій і засобів захисту, включаючи інформацію про впровадження символів знаків SQL.

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

Злом відкритих веб-додатків: Секрети і рішення безпеки веб-додатків Джоел Скамбрей, Вінсент Ллю і Калеб Сіма: Ця книга містить інформацію про впровадження SQL, включаючи впровадження таких символів SQL і інші методи впровадження.

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

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

Освоєння Metasploit: Створення і тестування розширених експлойтів автор: Ніпун Джасвал: У цій книзі розповідається про платформі Metasploit, в тому числі про те, як використовувати її для тестування SQL-ін'єкцій та інших вразливостей.

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

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

Metasploit: Керівництво з тестування на проникнення Девід Кеннеді, Джим о'горман, Девон Кернс і Мати Ахароні: У цій книзі розповідається про платформі Metasploit, в тому числі про те, як використовувати її для тестування на впровадження SQL та інші уразливості.

Злом сірої капелюхи: керівництво етичного хакера Даніель Регаладо, Шон Харріс, Аллен Харпер, Кріс Голок і Джонатан Несс: Ця книга охоплює широкий спектр етичних тим злому, включаючи впровадження SQL, включаючи впровадження таких символів SQL.

Список корисних навантажень Впровадження SQL-символів знаків

  • %' або 1=1 —
  • %' чи '1'='1' —
  • %' або 1=1#
  • %' чи '1'='1'#
  • %' або 1=1/*
  • %' чи '1'='1'/*
  • %' або 1=1;
  • %' або '1'='1';
  • %' або 1=1;;#
  • %' або '1'='1';;#

Як бути захищеним від впровадження SQL-символів знаків

  1. Параметризрвані запити є ефективним способом запобігання атак з використанням символів знаків SQL. Замість об'єднання користувальницького введення в SQL-запит використовуйте заповнювачі в запиті і прив'яжіть користувальницький введення до цих заповнювачів.

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

  3. Брандмауер веб-додатків може допомогти захистити від атак з використанням символів знаків SQL, відстежуючи вхідні запити і блокуючи будь-які, які здаються шкідливими.

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

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

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

Висновок

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

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

Інші Послуги

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

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