Использование SQL-инъекцийПроверка WEB-сервера на уязвимость с помощью SQL-запросов

Октябрь 2, 2011 → 5 Comments


Технология, называемая внедрением 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)

@@переменная

Обращение к внутренней переменной сервера

PRINT

Возвращает ошибку ODBC, но не может служить для вывода данных

SET

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

%

Символ шаблона, который заменяет любую строку, состоящую из нулевых или других символов




Если Вам понравилась эта статья,
!

Comments

  • http://mes-blog.com.ua Eugene

    Автор, спасибо за столь актуальный пост! Будем пробовать, спасибо!

  • Аноним

    отдельный запрос, или в адресной строке браузера, если нужно проверить БД или сайт на уязвимость или в ком. строке.

  • http://gadjetlist.ru Mertvec100500

    Как опасно в интернете работать. В любой момент, любой дурак взломает сайтец и ни тебе трафа, ни тебе сылок. =)

  • http://seoprodvig.ru/ Aleksandr

    Спасибо за статью! Надо попробывать!

  • http://www.icon.ru/ icon

    недавно на курсах разбирали эту технологию. спасибо за помощь)