Взлом базы данных: распространенные команды SQL-инъекции

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
153
Депозит
-8.95$
Добро пожаловать обратно, мои начинающие кибервоины!

По данным проекта Open Web Application Security Project (OWASP), внедрение команд неизменно является одной из самых серьёзных и многочисленных атак на веб-приложения. Кроме того, эти атаки обычно наносят серьёзный финансовый ущерб компаниям и другим организациям, поскольку направлены на базы данных, где хранится огромное количество ценной информации, такой как номера кредитных карт и персональные данные (PII).

Топ -10 OWASP

6a4a49_d8a3986c58e94ca9804035ba29fda4a4~mv2.png


Хотя существует множество векторов атак на базы данных, наиболее распространённым является SQL-инъекция. SQL-инъекция отправляет SQL-команды из веб-формы в базу данных на сервере.

6a4a49_cfd10ff6b0d441d0a64ce14d359574c2~mv2.jpg


Если эти команды SQL не очищаются на уровне клиента (браузера), они могут перейти в базу данных и посеять хаос, включая:

  1. Данные эксфильтрации
  2. Удалить данные
  3. Добавить данные
  4. Обновление данных
При тестировании на уязвимости к SQL-инъекциям используются следующие команды и специальные символы. Чем лучше вы понимаете SQL, тем успешнее вы будете справляться с SQL-инъекциями.

Кавычки

Одинарная кавычка ('): часто используется для завершения строковых литералов.

Двойная кавычка («): также может использоваться для завершения строковых литералов в некоторых базах данных.

Последовательности комментариев :

Двойной тире (–): это комментарий SQL, который может использоваться для аннулирования оставшейся части запроса.

Решетка (#): в MySQL это альтернативный способ закомментировать остальную часть запроса.

Слэш-звездочка (/* … */): Многострочный комментарий.

Может использоваться для комментирования частей или всего запроса.

Операторы и команды:

Точка с запятой (;): обозначает конец одного запроса и начало другого.

Логические операторы: И, ИЛИ.

Функции управления: UNION, UNION ALL.

Булевы значения

TRUE или 1=1: всегда оценивается как true и может использоваться для управления предложениями WHERE.

ЛОЖЬ или 1=0: всегда оценивается как ложь

Функции задержки времени

SLEEP(x): в MySQL вызывает задержку на x секунд.

WAITFOR DELAY 'hh:mm:ss': в SQL Server вызывает задержку.

pg_sleep(x): в PostgreSQL вызывает задержку на x секунд.

Поиск информации

@@version: Возвращает версию базы данных (работает во многих базах данных).

CURRENT_USER: Возвращает текущего пользователя.

Шестнадцатеричное кодирование

Злоумышленники могут кодировать свои полезные данные в шестнадцатеричном формате, чтобы обойти наивные фильтры.

джокеры

Знак процента (%): представляет ноль или более символов в предложениях SQL LIKE. Этот знак использовался в недавней атаке MoveIT, проводимой C|op.

Специальные функции

CONCAT(): используется для объединения строк в SQL.

CAST(), CONVERT(): используются для преобразования типов.

ASCII(), CHAR(): Функции для получения значений или символов ASCII, могут использоваться в слепом SQLi.

Подвыборки и запросы метаданных

SELECT … FROM information_schema.tables: используется в таких базах данных, как MySQL и PostgreSQL, для сбора метаданных о таблицах.

SELECT … FROM sysobjects …: используется в SQL Server для сбора метаданных.

Краткое содержание

Атаки с использованием инъекций через веб-формы, приводящие к краже данных из баз данных, являются одними из самых серьёзных видов атак, угрожающих безопасности веб-сайтов. Эти атаки на базы данных используют SQLi-атаки, при которых SQL-команды отправляются в базу данных на основе несанкционированных входных данных клиента (браузера). Хотя SQLi-атаки становятся всё более сложными, для их успешной реализации в эпоху повышенного внимания к безопасности необходимо глубокое понимание SQL.
 
Назад
Сверху Снизу