SQL-инъекции на основе ошибок

Benzema

Публикатор
Команда форума
Регистрация
27.01.18
Сообщения
374
Реакции
149
Баллы
560
FTC
129¢
1663891702461

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

Пример SQL-инъекций на основе ошибок:​

Добавление синтаксиса SQL к пользовательскому вводу: в этой SQL-инъекции хакер вставляет вредоносный запрос, чтобы получить ошибку, которая отображает сообщение, содержащее конфиденциальную информацию о базе данных. Хакер может попытаться написать SQL-команду в любом поле ввода, например, в виде одинарных кавычек, двойных кавычек или любого другого оператора SQL, такого как OR, AND, NOT.

Например, для URL-адреса сайта, который принимает параметр от пользователя,
Затем здесь злоумышленник может попытаться вставить любую команду или оператор SQL в значение passes,
В этом случае база данных может возвращать некоторую ошибку, подобную этой. Если у вас ошибка в синтаксисе SQL, проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом со “ЗНАЧЕНИЕМ”. Это сообщение предоставляет злоумышленнику информацию, например, базу данных, используемую в SQL, синтаксис, который вызвалошибка и где синтаксис произошел в запросе. Для профессионального хакера с опытом этого будет достаточно, чтобы сообщить ему, что сервер небезопасно подключен к базе данных и может планировать дополнительные атаки с использованием SQL-инъекций, которые нанесут ущерб. Злоумышленник может попробовать несколько запросов, используя такие команды, как grep extract в полях ввода, и посмотреть, какие команды возвращают ошибку.

Предотвращение SQL-инъекций на основе ошибок:​

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

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

3. Наименьшие привилегии: все разрешения, предоставленные устройствам Bluetooth, должны быть проверены; устройству должны быть разрешены только необходимые. Например, приложению должен быть разрешен доступ к базе данных для управления сохраненными данными. Это снижает риски, связанные с SQL-инъекцией. Многие обычные приложения иногда запрашивают доступ к конфиденциальным данным, присутствующим в базе данных. Поэтому лучше уменьшить разрешения приложений и разрешить только важные.
 
Сверху Снизу