Моей основной целью хакерства было интеллектуальное любопытство, соблазн приключений - Кевин Митник

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

Сегодня мы рассмотрим следующие темы

И. ОСНОВЫ SQL

  • НРАВИТСЯ оператор
  • ДИКИЙ оператор карты
  • Оператор предложения GROUP
  • Псевдонимы в SQL
  • предложение ORDER BY

II. ТЕОРИЯ ВНЕДРЕНИЯ SQL

  • Краткий обзор внедрения SQL
  • Повышение привилегий
  • Слепая SQL-инъекция

Нравится оператор

При просмотре данных с сервера SQL мы можем использовать оператор «LIKE» для поиска возможного шаблона возможных записей или данных. Ниже приведен пример использования инструкции LIKE при запросе информации из базы данных SQL. Знак % обычно называется Подстановочным знаком на языке SQL и указывает SQL-запросу ограничить поиск точных символов или строк, где бы он ни находился.

Предложение группы BY

Запрашивая данные и информацию, мы можем использовать предложение Group By, чтобы упорядочить наши столбцы при отображении данных и информации. В приведенном ниже примере показаны два столбца, размещенные с помощью предложения Group by .

ЗАЯВЛЕНИЕ О Псевдонимах

Оператор AS может настроить имя нашего поля из исходного имени столбца в SQL Server. Мы также можем использовать другой оператор SQL, называемый оператором COUNT, для подсчета количества строк, возвращенных из запроса. Оператор Count обычно используется при извлечении данных, но следует понимать, что оператор COUNT не будет вычислять значения NULL.

СОРТИРОВАТЬ ПО

SQL также позволяет нам упорядочивать наши данные и информацию в зависимости от того, как мы их визуализируем. Примером может быть использование оператора Ascending или Descending для перечисления целых чисел или символов в формате больше или меньше.

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

Бэкенд-разработка

Backend-разработка является одной из наиболее важных частей разработки и поддержки информации и данных. Данные постоянно перетекают между пользовательским интерфейсом в базу данных или облачную инфраструктуру. Всякий раз, когда мы отправляем текстовые сообщения или вводим данные, наши данные или имя пользователя или пароль передаются через серверные программы, такие как Golang, Java, C#, PHP или node js.

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

Внедрение SQL

Мы используем веб-сайты и мобильные устройства, которые предлагают пользовательский ввод и проверку с панели ввода. Некоторые из нас будут искать товары во всемирной паутине, например, новую обувь или видеоигры. API-интерфейсы позволяют пользователям искать информацию и данные с устройства мобильного приложения. Другие понимают, что каждое поле ввода веб-сайта и мобильного приложения — это открытая атака для внедрения SQL в базу данных.

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

См. пример 2.0. Хакер, например, пытается выполнить SQL-инъекцию, но не может получить данные из базы данных SQL. База данных возвращает ошибку о том, что таблица базы данных SQL не существует в целевой таблице. В этом примере бэкэнд может чувствовать, что выиграл в этой ситуации, но это не так.

Повышение привилегий

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

Слепая SQL-инъекция

Давайте поговорим о другом варианте SQL-инъекции, обычно называемом слепой SQL-инъекцией в кибербезопасности. Эта основа ядра внедрения SQL развивает веб-ответ HTTP и соответствующий запрос SQL из базы данных через браузер HTTP.

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

Затем сервер получает еще один запрос от пользователя для аутентификации на веб-сайте. Разница в этой ситуации заключается в том, что файлы cookie из браузера и последний вход в систему проверяются сервером и проверяются с помощью таблицы SQL. Таким образом, столбец SQL находится, включая информацию об аутентификации из предыдущего входа в систему, и пользователь снова проходит аутентификацию на веб-сайте. В этом примере показано, как работают файлы cookie при предложении пользователям базы данных этого примера.

Хакер веб-приложений понимает, что использование файлов cookie и времени отклика HTTP является критической уязвимостью для использования базы данных SQL, прикрепленной к веб-сайту. Условный оператор, обработанный через веб-браузер на SQL-сервере, определит, может ли информация быть просочилась из базы данных. Файлы cookie сообщают SQL-серверу, где искать и кем является человек при аутентификации. Таким образом, мы, как хакеры веб-приложений, должны сделать условия точными, чтобы вызвать информацию о выпуске базы данных.

Здесь у нас есть классический оператор SQL, обычно используемый в SQL-инъекциях. В языке программирования или структурных запросов мы обычно используем оператор «=» для сравнения двух целых чисел. Если целые числа равны, это называется логическим типом данных. Значение «истинно». Если оба значения не похожи, то это считается «ложным». Язык SQL — это не язык программирования, а структурный язык для анализа данных, но в программировании мы считаем, что этот оператор «=» используется во многих условных операторах.

Примером является «2 = 2», который передается через браузер URL на сервер SQL. Предположим, что SQL-сервер не имеет надлежащей обработки ошибок в следующей ситуации. Сервер SQL понимает, что «2 = 2» является истинным утверждением, и, будучи истинным, может вызвать условие, которое позволяет браузеру HTTP возвращать SQL-запросы из базы данных через браузер HTTP. Хакер веб-приложения теперь может просматривать результаты SQL-запроса, используемого в базе данных, и разворачивать другую атаку на SQL-сервер, следуя той же логике. То, что мы сделали так же, как пример аутентификации файлов cookie, чтобы ввести пользователя на веб-сайт, является «истинным». В этом примере мы имитируем и запускаем ту же условную логику, используя «2 = 2» и разрешая базе данных использовать использование запросов для поиска таблиц SQL, поскольку «2 = 2» является истинным значением.

Заключение

Сегодня мы обсудили много информации о SQL-инъекциях и о том, как все это работает в кибербезопасности. В следующей статье мы еще больше углубимся в то, как это работает, и более подробные примеры SQL-команд и инъекций, используемых для взлома веб-приложений в кибербезопасности. Ключевыми моментами являются понимание того, как работает бэкэнд-разработка и почему она реализует безопасность на физическом и программном уровне приложения. Пожалуйста, обратитесь к программе OWASP за подробной информацией о том, как работают SQL-инъекции и как их предотвратить! Удачного кодирования и безопасности!



Рекомендации