SQL инъекция – web атака – OWASP # 1 УЯЗВИМОСТЬ – ЧАСТЬ 2 |

SQL инъекция – web атака – OWASP # 1 УЯЗВИМОСТЬ – ЧАСТЬ 2

Мануал

Сегодня мы узнаем об основах SQL Injection.

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

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

Подобным образом SQL Injection означает добавление чего-то дополнительного в запрос SQL, что приводит к отклонению от SQL от фактического поведения.

Что такое SQL инъекция?

SQL-инъекция – это атака, в которой вредоносный код вставляется в строки, которые затем передаются SQL Server для синтаксического анализа и выполнения.

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

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

Программисты часто хотят, чтобы данные доверия из собственной базы данных были безопасными, не понимая, что они безопасны для всех других последующих применений.

Данные из базы данных следует рассматривать как ненадежные, если не доказано иначе, например. через процессы валидации.

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

Как происходит SQL-инъекция?

Обычно, что происходит в веб-приложениях, кодеры встраивают свои SQL-запросы в веб-страницы, чтобы отправлять и извлекать данные в / из баз данных, что является обычной практикой в ​​корпоративном мире. SQL, эти SQL-запросы обрабатываются в формате HTML, т.е. невидимые для обычного пользователя.

SQL встроен в веб-приложение или веб-страницу.

Хакеры проверяют веб-страницу, чтобы проверить, как она извлекается, как проверяется конкретная форма поиска или форма текстового поля и многое другое.

Во время этого осмотра, если это так, веб-приложение уязвимо для дефектов инъекции.

Но как именно хакеры проверяют эти вещи?

Для проверки SQL-инъекции он просто считывает значения тестов в специальном наборе символов, наборе последовательности.

SQL-инъекция происходит, когда происходит что-то из следующего:

1. Данные поступают в программу из ненадежного источника.

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

3. Также SQL инъекция  может возникнуть, если escape-последовательности и типы не обрабатываются должным образом в SQL-запросе.

Рассмотрим следующий пример:

$ db = new mysqli ('localhost', 'username', 'password', 'mydatabase');
$ result = $ db-> query (
'SELECT * FROM транзакций WHERE user_id ='. $ _ POST [ 'user_id']
);

У вышеуказанного запроса имеется множество недостатков в инъекции.

Вещи, которые в этом неправильны:
1. Прежде всего содержимое POST не проверено на достоверность.
2. Мы разрешаем ненадежному источнику сообщить нам, какой user_id использовать – для злоумышленника. Большинство разработчиков считают, что просто использовать POST, чтобы скрыть user_id
3. Мы не ускользнули от user_id или передали его запросу в качестве связанного параметра, который позволяет злоумышленнику вводить произвольные строки, которые могут манипулировать предоставленным SQL-запросом.

Вышеупомянутые три проблемы довольно распространены среди всех веб-приложений.

Мы хотим подробно обсудить каждую из них в последующих статьях.

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий