SQL-ін’єкція – один з поширених способів злому сайтів і програм, що працюють з базами даних, заснований на впровадженні в запит довільного SQL-коду. Впровадження SQL, залежно від типу використовуваної СУБД та умов впровадження, може дати можливість атакуючому виконати довільний запит до бази даних (наприклад, прочитати вміст будь-яких таблиць, видалити, змінити або додати дані), отримати можливість читання та/або запису локальних файлів і виконання довільних команд на сервері, що атакується. Атака типу застосування SQL може бути можлива через некоректну обробку вхідних даних, що використовуються в SQL-запитах. Розробник прикладних програм, що працюють з базами даних, повинен знати про такі вразливості та вживати заходів протидії впровадженню SQL.
SQL-ін’єкціями називають атаки, що дозволяють зловмиснику робити різні несанкціоновані дії над базою даних. Вони можуть торкатися як самі дані, і структуру бази. Для цього як вхідні дані передаються спеціальні рядки, що містять шкідливі команди. Чим корисний SQL? За допомогою SQL розробник записує і виводить дані з бази. Таким чином, SQL – сполучна ланка, яка забезпечує взаємодію програми з базою даних та інформацією, яка там зберігається Існує три основні класи атак, що базуються на впровадженні SQL-коду: Класична SQL ін’єкція (Classic SQLi) SQL ін’єкція, заснована на експлуатації СУБД повідомлень про помилки (Error-based SQLi) Сліпа SQL ін’єкція (Blind SQLi). SQL-ін’єкція полягає в тому, що злоумисник вводить в веб-форми або параметри запитів до бази даних код, який при виконанні збільшує привілеї користувача, виконує дії від його імені, або отримує незаконний доступ до бази даних. Щоб запобігти SQL-ін’єкції, потрібно правильно налаштувати веб-додаток та коректно валідувати вхідні дані, що вводяться користувачем.
Простий скрипт для автоматизації вразливостей брутфорсингу blind sql injection.
Інструменти для тестування ініціативи та пасивного вразливого впровадження SQL.