Проверка WEB-сервера на уязвимость с помощью SQL-запросов
Технология, называемая внедрением SQL (SQL injection), может реализовываться как в виде простого внедрения символов, вызывающих ошибки, так и в виде выполнения произвольных запросов из командной строки. Продукты практически всех поставщиков баз данных могут подвергаться взломам данного типа. Этот изъян проявляется в SQL-запросах и соответствующих программных интерфейсах, предназначенных для поддержки таких запросов: ASP, PHP, Perl, a также любой другой язык программирования для Web. И, независимо от технологии, при небольшой модификации SQL легко можно использовать для взлома любых других серверов баз данных.
При внедрении SQL-запросов чаще всего используется символ одинарной кавычки (’). Поэтому для поиска возможности взлома можно, прежде всего, попытаться использовать этот символ. В структуре SQL-запроса одинарная кавычка обычно используется для отделения переменных, передаваемых в запросе от самого запроса:
strSQL = “select userid from users where password = ’ ” + password + “ ’ ”. |
Ниже в таблице приведен список других часто употребляемых символов, предназначенных для форматирования SQL-запросов. С помощью таких символов можно осуществлять проверку SQL-сервера на наличие изъянов. Проверка Web-узла с использованием этих символов позволяет найти изъяны SQL-сервера без выполнения хранимых процедур (для MS SQL Server) или сложных SQL-запросов.
Управляющие символы SQL |
Описание |
’ |
Завершает выражение |
— |
Однострочный комментарий. Оставшаяся часть строки игнорируется |
+ |
Пробел. Требуется для корректного формата выражений |
,@переменная |
Добавляет переменную. Помогает идентифицировать хранимые процедуры (для MS SQL Server) |
?Раram1=fоо&Parаm1=bar |
Присваивает переменной Param1 значения fоо и bar. Помогает идентифицировать хранимые процедуры (для MS SQL Server) |
@@переменная |
Обращение к внутренней переменной сервера |
|
Возвращает ошибку ODBC, но не может служить для вывода данных |
SET |
Объявление переменных. Используется для многострочных SQL-выражений |
% |
Символ шаблона, который заменяет любую строку, состоящую из нулевых или других символов |
Автор, спасибо за столь актуальный пост! Будем пробовать, спасибо!
отдельный запрос, или в адресной строке браузера, если нужно проверить БД или сайт на уязвимость или в ком. строке.
Как опасно в интернете работать. В любой момент, любой дурак взломает сайтец и ни тебе трафа, ни тебе сылок. =)
Спасибо за статью! Надо попробывать!
недавно на курсах разбирали эту технологию. спасибо за помощь)