Взлом баз данных, часть 1: Знакомство с терминами и технологиями

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
Это первая часть новой серии статей «Взлом баз данных», которую я веду на Hackers Arise. Мы начнём с основ и перейдём к более продвинутым методам взлома баз данных.

Хотя существует множество различных типов хакеров, их общая цель — база данных. Я часто называю базу данных Святым Граалем хакера , или высшей наградой за эффективный взлом.

6a4a49_078e99e155aa4f088eb8bf9d203a87cbmv2.webp


Это связано с тем, что база данных — почти по определению — является хранилищем всех «фишек», за которыми гонится хакер. Эти «фишки» могут включать данные кредитных карт, персональные данные, имена пользователей и пароли, а также интеллектуальную собственность. Каждый из этих элементов можно продать за значительные суммы на чёрном рынке.

Например, номера кредитных карт можно продать за 5–50 долларов в зависимости от качества (золотые и платиновые карты стоят дороже обычных) и кредитного лимита. Таким образом, взлом, позволяющий получить 200 000 номеров кредитных карт, стоит от 1 до 10 миллионов долларов!

6a4a49_5c9ab9f4ff2648fdb77c8969a2b51f8bmv2.webp


В то же время хакеры, спонсируемые государством, например, из Китая, охотятся за интеллектуальной собственностью. Это включает в себя чертежи, формулы, инженерные разработки и другие данные, которые они могут украсть и привезти в Китай для производства китайскими компаниями. Это происходит каждый день, и некоторые считают это величайшей кражей в истории !

Это первая часть новой серии Hackers Arise, посвящённой взлому баз данных. Прежде чем мы рассмотрим, как взломать базу данных, нам необходимо понять основы работы баз данных, что такое SQL и какие уязвимости характерны для баз данных.

Итак, давайте начнем, чтобы мы могли побыстрее приступить к взлому БД!

Что

База данных — это система программного обеспечения для хранения и извлечения информации в структурированном формате. Ранние базы данных представляли собой простые файлы, похожие на большие файлы Excel. По мере роста объёма баз данных эта простая структура становилась неэффективной.

В результате учёный из IBM, доктор Кодд, разработал структуру, получившую название модели реляционной базы данных. Именно эту модель сегодня используют около 97% всех баз данных, включая все крупнейшие компании-разработчики программного обеспечения.

Основой реляционной модели является то, что данные должны размещаться в отдельных таблицах с уникальными ключами, которые связывают таблицы, чтобы избежать дублирования данных и облегчить поиск этих данных.

Структура

Эта модель реляционной базы данных связывает данные из отдельных таблиц с помощью общего столбца, или «ключа». На диаграмме ниже представлена простая модель реляционной базы данных, в которой все таблицы связаны столбцом «ID».

6a4a49_bd025486f4c04de9bcf5955f54219f99mv2.webp


Основные

На рынке корпоративных баз данных представлено множество поставщиков, предлагающих продукты, которые решают одну и ту же задачу, но разными способами. Основные игроки на этом рынке:

  • Oracle . Это гигант на этом рынке, занимающий почти 50% рынка. Компания владеет несколькими различными программными продуктами для баз данных, включая одноименную систему MySQL.
  • Microsoft SQL Server . Компания Microsoft вышла на этот рынок в начале 90-х, объединившись с Sybase для разработки корпоративной базы данных. В результате MS SQL Server и Sybase по-прежнему имеют много общего. Изначально Microsoft работала только на рынке малого бизнеса, но постепенно набирает популярность и на рынке крупных корпораций.
  • MySQL . Это база данных с открытым исходным кодом, которую вы найдете на множестве веб-сайтов, отчасти потому, что она бесплатна.
  • IBM DB2 . IBM была первым поставщиком корпоративных баз данных и внесла множество важных изменений в проектирование баз данных, но, как и всё в IBM, в последние десятилетия она пришла в упадок.
  • SQLite — это легковесная реляционная база данных с открытым исходным кодом. Благодаря своему лёгкому весу и эффективности она встраивается практически во все мобильные устройства и браузеры, где требуется хранить и извлекать данные, потребляя при этом мало энергии и ресурсов процессора. Хотя взлом таких баз данных не был непопулярным среди хакеров, я предполагаю, что по мере того, как всё больше данных перемещается на наши мобильные устройства, она станет ещё более популярной и ценной.
Другие крупные поставщики включают Sybase, SAS, PostgreSQL (с открытым исходным кодом) и многие другие. Как правило, как и в случае с любым взломом, для успешного проведения проверки необходимо провести тщательную разведку, чтобы определить используемое программное обеспечение и его версию, поскольку большинство взломов баз данных привязаны к конкретному поставщику.

Когда IBM разрабатывала первые базы данных, они также разработали язык программирования для управления и обработки этих данных. Они назвали его «языком структурированных запросов», или, как его обычно называют, SQL.

Это простой язык, в котором английские слова используются так же, как их используют люди, говорящие по-английски. Например…

  • SELECT означает «выбрать некоторые данные из столбцов таблицы»
  • FROM означает «получить данные из этой таблицы»
  • ГДЕ означает выбор данных, соответствующих этому условию (фамилия = 'smith').
Более того, такие слова, как UPDATE , INSERT и DROP, означают в SQL именно то, что вы от них ожидаете.

SQL не требователен к синтаксису, но требователен к логике. Хотя рекомендуется писать все ключевые слова (SELECT, FROM, WHERE) ЗАГЛАВНЫМИ буквами, это не обязательно. Кроме того, пробелы игнорируются. Однако все SQL-выражения, кроме Microsoft, требуют, чтобы SQL-выражение заканчивалось точкой с запятой (;). В продуктах Microsoft это необязательно.

SQL стандартизирован ANSI, но эта стандартизация охватывает лишь около 80% языка или его ядра. Разработчики программного обеспечения могут свободно добавлять дополнительные команды и функции, не входящие в стандарт. Иногда это может затруднять перенос SQL-кода между СУБД. Кроме того, перед атакой крайне важно провести тщательную разведку базы данных, чтобы узнать производителя и версию, поскольку атаки часто направлены на конкретного производителя и версию.

Каждая из СУБД может работать из командной строки, но у каждой есть свой графический интерфейс. Недавно MySQL выпустила новый графический интерфейс под названием Workbench, как показано в предыдущем разделе.

6a4a49_1e6bcb309d1c4a3d890635c7c864ab75mv2.webp


Oracle, Microsoft и другие компании имеют схожие графические интерфейсы, которые позволяют администратору получать доступ к своим системам.

Базовый SQL- запрос

Когда нам нужно извлечь данные из базы данных, говорят, что мы «запрашиваем» её. Поскольку базы данных являются хранилищами данных, возможность извлекать или запрашивать данные является одной из важнейших функций. Как хакеры, мы хотим извлечь данные, поэтому запрос критически важен для получения результата.

Базовая структура запроса выглядит так:

SELECT <столбцы> FROM <таблица> WHERE <условия>

В этом операторе говорится: «Предоставьте мне данные в столбцах, перечисленных в операторе SELECT из таблицы, которая следует после ключевого слова FROM, но предоставьте мне только те строки, которые соответствуют условиям, указанным после ключевого слова WHERE».

Итак, если бы мы хотели получить имя, фамилию, имя пользователя и пароль из таблицы персонала для сотрудников с фамилией «Хиллер», мы могли бы построить следующий оператор:

ВЫБЕРИТЕ имя, фамилию, имя пользователя, пароль FROM staff WHERE last_name = 'Hillyer”;

6a4a49_bf27aa7c674846a69cf83bd43b85aec9mv2.webp


Как вы можете видеть на снимке экрана выше, мы извлекли запись Майка Хиллиера из таблицы персонала с его именем пользователя и паролем (пароль на самом деле является хэшем его пароля).

SQL- инъекция

SQL-инъекция является наиболее распространенной атакой на базу данных и, вероятно, является причиной наибольшего объема убытков от киберпреступности и продвинутых постоянных угроз (APT).

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

В будущих уроках мы потратим немало времени на использование инструментов SQL-инъекций и выполнение атак с использованием SQL-инъекций.

Другие уязвимости

Помимо демонстрации SQL-инъекций, мы рассмотрим некоторые другие уязвимости баз данных. К ним относятся аутентификация, использование базы данных для взлома операционной системы и ряд других.
 
Назад
Сверху Снизу