Внедрение SQL — это набор команд SQL, которые помещаются в строку URL или в структуры данных, чтобы получить требуемый ответ из баз данных, связанных с веб-приложениями. Этот тип атак обычно происходит на веб-страницах, разработанных с использованием PHP или ASP.NET.
Атака SQL-инъекции может быть выполнена со следующими намерениями:
-
Чтобы сбросить всю базу данных системы,
-
Чтобы изменить содержимое баз данных, или
-
Для выполнения разных запросов, которые не разрешены приложением.
Чтобы сбросить всю базу данных системы,
Чтобы изменить содержимое баз данных, или
Для выполнения разных запросов, которые не разрешены приложением.
Этот тип атаки работает, когда приложения не проверяют входные данные должным образом, прежде чем передать их в оператор SQL. Инъекции обычно помещаются в адресные строки, поля поиска или поля данных.
Самый простой способ определить, является ли веб-приложение уязвимым для атаки с использованием SQL-инъекций, — это использовать символ «» в строке и проверить, нет ли ошибок.
Пример 1
Давайте попробуем понять эту концепцию на нескольких примерах. Как показано на следующем снимке экрана, мы использовали символ «» в поле «Имя».
Теперь нажмите кнопку « Войти» . Он должен дать следующий ответ —
Это означает, что поле «Имя» уязвимо для внедрения SQL.
Пример 2
У нас есть этот URL — http://10.10.10.101/mutillidae/index.php?page=site-footer-xssdiscussion.php
И мы хотим протестировать переменную «страница», но посмотрим, как мы вставили символ «» в строку URL.
Когда мы нажимаем Enter, он выдаст следующий результат с ошибками.
SQLMAP
SQLMAP является одним из лучших инструментов, доступных для обнаружения SQL-инъекций. Его можно скачать с http://sqlmap.org/
Он поставляется предварительно скомпилированным в дистрибутив Kali. Вы можете найти его по адресу — Приложения → Оценка базы данных → Sqlmap.
После открытия SQLMAP мы переходим на страницу, на которой у нас есть SQL-инъекция, а затем получаем запрос заголовка. Из заголовка мы запускаем следующую команду в SQL —
./sqlmap.py --headers="User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:25.0) Gecko/20100101 Firefox/25.0" --cookie="security=low; PHPSESSID=oikbs8qcic2omf5gnd09kihsm7" -u ' http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#' - level=5 risk=3 -p id --suffix="-BR" -v3
SQLMAP проверит все переменные, и результат покажет, что параметр «id» уязвим, как показано на следующем снимке экрана.
SQLNinja
SQLNinja — это еще один инструмент для внедрения SQL, который доступен в дистрибутиве Kali.
Инъекция JSQL
JSQL Injection находится на Java и делает автоматические SQL-инъекции.
Быстрые советы
Чтобы ваше веб-приложение не подвергалось атакам с использованием SQL-инъекций, следует помнить о следующих моментах:
Не проверенный пользовательский ввод в базу данных не должен проходить через графический интерфейс приложения.
Каждая переменная, которая передается в приложение, должна быть обработана и проверена.
Пользовательский ввод, который передается в базу данных, должен быть заключен в кавычки.