Тестирование внедрения SQL-запросов

Атаки путем внедрения кода SQL включают вставку или «внедрение» SQL-запросов через клиентский ввод в приложение. Успешная атака такого типа может быть использована для считывания конфиденциальной информации из базы данных и ее изменения или удаления. В самых крайних случаях она позволяет выдавать системные команды.


Ниже приведен опасный фрагмент кода, который можно использовать для выполнения атаки путем внедрения кода SQL:

ВЫБЕРИТЕ * ИЗ пользователей ГДЕ имя = имя_пользователя;

Переменная "userName" извлекается из пользователя. Если злоумышленник называет 'OR' 1 '='1' в качестве своего имени пользователя, это приведет к принудительному выбору правильного имени пользователя, поскольку выражение '1' = '1' всегда истинно.


Для тестирования уязвимостей sql-инъекцийможно использовать средство sqlmap, которое автоматически может находить и использовать возможность внедрения SQL-запросов. Он поддерживает шесть методов внедрения sql:логические, слепые, основанные на ошибках, запросы UNION,накопительные запросы и атаки OOB. Позволяет атаковать базы данных MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, HSQLDB и Informix.


На рисунке ниже показан пример использования sqlmap,который с помощью эвристических тестов обнаружил, что параметр id может быть уязвим для атаки sql-инъекции в тестируемом запросе.

Пример использования sqlmap

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

Закладка Постоянная ссылка.

Podziel się swoją opinią na temat artykułu