Читаем Защити свой компьютер на 100% от вирусов и хакеров полностью

Внедрение операторов SQL (SQL Injection). Эти атаки направлены на веб-серверы, создающие SQL-запросы к серверам СУБД на основе данных, вводимых пользователем. Язык запросов Structured Query Language (SQL) представляет собой специализированный язык программирования, позволяющий создавать запросы к серверам СУБД. Большинство серверов поддерживают этот язык в вариантах, стандартизированных ISO и ANSI. В большинстве современных СУБД присутствуют расширения диалекта SQL, специфичные для данной реализации (например, T-SQL в Microsoft SQL Server и т. д.). Многие веб-приложения используют данные, переданные пользователем, для создания динамических веб-страниц. Если информация, полученная от клиента, должным образом не верифицируется, атакующий получает возможность модифицировать запрос к SQL-серверу, отправляемый приложением. Запрос будет выполняться с тем же уровнем привилегий, с каким работает компонент приложения, выполняющий запрос (сервер СУБД, веб-сервер и т. д.). В результате злоумышленник может получить полный контроль над сервером СУБД и даже его операционной системой. С точки зрения эксплуатации SQL Injection очень похож на LDAP Injection.

Предположим, что аутентификация в веб-приложении осуществляется с помощью веб-формы, обрабатываемой следующим кодом:

SQLQuery = "SELECT Username FROM Users WHERE

Username = '" strUsername "' AND Password = '"

strPassword strAuthCheck =

GetQueryResult(SQLQuery)

В этом случае разработчики непосредственно используют переданные пользователями значения strUsername и strPassword для создания SQL-запроса. Предположим, злоумышленник передаст следующие значения параметров:

Login:'OR''='

Password:'OR''='

В результате серверу будет передан следующий SQL-запрос:

SELECT Username FROM Users WHERE Username = '' OR ''='' AND Password = '' OR ''=''

Вместо сравнения имени пользователя и пароля с записями в таблице Users данный запрос сравнивает пустую строку с пустой строкой. Естественно, результат подобного запроса всегда будет равен True, и злоумышленник войдет в систему от имени первого пользователя в таблице. Обычно выделяют два метода эксплуатации внедрения операторов SQL: обычная атака и атака вслепую (Blind SQL Injection). В первом случае злоумышленник подбирает параметры запроса, используя информацию об ошибках, генерируемую веб-приложением.

К примеру, добавляя оператор union к запросу, злоумышленник может проверить доступность базы данных (листинг 1.12).

Листинг 1.12. Пример применения оператора union в запросе

http://example/article.asp?ID=2+union+all+select+name+from+sysobjects

Microsoft OLE DB Provider for ODBC Drivers error "80040e14"

[Microsoft][ODBC SQL Server Driver][SQL Server]All

queries in an SQL statement containing a UNION

operator must have an equal number of expressions

in their target lists.

Из этого примера следует, что оператор union был передан серверу, и теперь злоумышленнику необходимо подобрать используемое в исходном выражении select количество параметров. Возможен также вариант внедрения SQL-кода вслепую. В этом случае стандартные сообщения об ошибках модифицированы, и сервер возвращает понятную для пользователя информацию о неправильном вводе. Осуществление SQL Injection может быть реализовано и в этой ситуации, однако обнаружение уязвимости затруднено. Наиболее распространенный метод проверки наличия проблемы – добавление выражений, возвращающих истинное и ложное значения.

Выполнение запросак серверу должно вернуть ту же страницу, что и запрос:asp?ID=2, поскольку выражение and 1=1 всегда истинно.

Если в запрос добавляется выражение, возвращающее значение False: example/article.asp?ID=2+and+1 = 0, то пользователю будет возвращено сообщение об ошибках или страница не будет сгенерирована.

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

Внедрение серверных расширений (SSI Injection). Атаки данного класса позволяют злоумышленнику передать исполняемый код, который в дальнейшем будет выполнен на веб-сервере. Уязвимости, приводящие к возможности осуществления данных атак, обычно заключаются в отсутствии проверки данных, предоставленных пользователем, перед сохранением их в интерпретируемом сервером файле.

Перед генерацией HTML-страницы сервер может выполнять сценарии, например Server-site Includes (SSI). В некоторых ситуациях исходный код страниц генерируется на основе данных, предоставленных пользователем.

Если атакующий передает серверу операторы SSI, он может получить возможность выполнения команд операционной системы или включить в нее запрещенное содержимое при следующем отображении. Вот и пример: выражение !—#exec cmd="/ bin/ls /" – будет интерпретировано в качестве команды, просматривающей содержимое каталога сервера в UNIX-системах. Следующее выражение позволяет получить строки соединения с базой данных и другую чувствительную информацию, расположенную в файле конфигурации приложения .NET: ! – #INCLUDE VIRTUAL="/web.config"-

Перейти на страницу:

Похожие книги

Основы информатики: Учебник для вузов
Основы информатики: Учебник для вузов

Учебник состоит из двух разделов: теоретического и практического. В теоретической части учебника изложены основы современной информатики как комплексной научно-технической дисциплины, включающей изучение структуры и общих свойств информации и информационных процессов, общих принципов построения вычислительных устройств, рассмотрены вопросы организации и функционирования информационно-вычислительных сетей, компьютерной безопасности, представлены ключевые понятия алгоритмизации и программирования, баз данных и СУБД. Для контроля полученных теоретических знаний предлагаются вопросы для самопроверки и тесты. Практическая часть освещает алгоритмы основных действий при работе с текстовым процессором Microsoft Word, табличным редактором Microsoft Excel, программой для создания презентаций Microsoft Power Point, программами-архиваторами и антивирусными программами. В качестве закрепления пройденного практического курса в конце каждого раздела предлагается выполнить самостоятельную работу.

Максим Анатольевич Беляев , Вадим Васильевич Лысенко , Лариса Александровна Малинина

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
Исповедь кардера-2
Исповедь кардера-2

Русь всегда славилась своими «левшами», не изменилась ситуация и сейчас. Не зря ведь большинство специалистов американской Силиконовой долины имеют русские корни.В продолжении фантастического романа о приключениях кардера Изи Питерского и его команды читатель вновь сможет оценить изворотливость и выдумку новых русских хакеров. Более того, теперь они работают на страну, для ее блага и процветания, создавая свой аналог известной долины разработчиков в США — Русскую Таежную опушку.Подпольная битва между кибер-войсками НАТО и русскими хакерами, противостояние спецслужб великих держав — со всем этим и многим другим читатель сможет познакомиться в книге Алексея Малова «Исповедь кардера — 2».

Алексей Малов

Детективы / Зарубежная компьютерная, околокомпьютерная литература / Криминальные детективы / Прочая компьютерная литература / Книги по IT