Данные атаки направлены на использование функций веб-приложения с целью обхода механизмов разграничения доступа. Некоторые механизмы веб-приложения, включая функции обеспечения безопасности, могут быть использованы для этих целей. Наличие уязвимости в одном из, возможно, второстепенных компонентов приложения может привести к компрометации всего приложения. Уровень риска и потенциальные возможности злоумышленника в случае проведения атаки очень сильно зависят от конкретного приложения. Злоупотребление функциональными возможностями очень часто используется совместно с другими атаками, такими как обратный путь в директориях и др. К примеру, при наличии уязвимости типа "межсайтовое выполнение сценариев" в HTML-чате злоумышленник может использовать функции чата для рассылки URL, эксплуатирующего эту уязвимость, всем текущим пользователям. С глобальной точки зрения, все атаки на компьютерные системы являются злоупотреблениями функциональными возможностями. Особенно это относится к атакам, направленным на веб-приложения, которые не требуют модификации функций программы. Примеры злоупотребления функциональными возможностями включают в себя:
применение функций поиска для получения доступа к файлам за пределами корневой директории веб-сервера;
использование функции загрузки файлов на сервер для перезаписи файлов конфигурации или внедрения серверных сценариев;
реализацию отказа в обслуживании путем использования функции блокировки учетной записи при многократном вводе неправильного пароля.
Ниже приведены примеры подобных уязвимостей, взятые из реальной жизни.
Программа FormMail представляет собой приложение на языке PERL, используемое для передачи данных из HTML-формы на указанный почтовый адрес. Этот сценарий довольно удобно использовать для организации функции обратной связи на сервере. К сожалению, данная программа предоставляла злоумышленнику возможность передавать почтовые сообщения любому почтовому пользователю. Таким образом, приложение могло быть использовано в качестве почтового ретранслятора для рассылки спама. Злоумышленник применяя параметры URL GET-за-проса для указания получателя почтового сообщения, к примеру:
httр://example/cgi-bin/FormMail.pl? recipient= [email protected] =you% 20got%20spam
В качестве отправителя почтового сообщения указывался адрес веб-сервера, что позволяло злоумышленнику оставаться полностью анонимным.
Иногда базовый интерфейс администрирования, поставляемый вместе с веб-приложением, может использоваться с не предусмотренными разработчиками целями. К примеру, Macromedia's Cold Fusion по умолчанию имеет модуль, позволяющий просматривать исходный код сценариев. Злоупотребление этой функцией может привести к получению критичной информации веб-приложения. Удаление или отключение данной функции весьма проблематично, поскольку от нее зависят важные компоненты приложения.
Иногда изменение данных, обрабатываемых приложением, может позволить модифицировать поведение программы. К примеру, уязвимость в функции покупки приложения CyberOffice позволяла модифицировать значение цены, передаваемой пользователю в скрытом поле HTML-формы. Страница подтверждения заказа загружалась злоумышленником, модифицировалась на клиенте и передавалась серверу уже с модифицированным значением цены.
Отказ в обслуживании (Denial of Service). Данный класс атак направлен на нарушение доступности веб-сервера. Обычно атаки, направленные на отказ в обслуживании, реализуются на сетевом уровне, однако они могут быть направлены и на прикладной уровень. Используя функции веб-приложения, злоумышленник может исчерпать критичные ресурсы системы или воспользоваться уязвимостью, приводящей к прекращению функционирования системы. Обычно DoS-атаки направлены на исчерпание критичных системных ресурсов – таких как вычислительные мощности, оперативная память, дисковое пространство или пропускная способность каналов связи. Если какой-то из ресурсов достигнет максимальной загрузки, приложение целиком будет недоступно. Атаки могут быть направлены на любой из компонентов веб-приложения, например такие как сервер СУБД, сервер аутентификации и т. д. В отличие от атак на сетевом уровне, требующих значительных ресурсов злоумышленника, атаки на прикладном уровне обычно легче реализовать. В качестве примера подойдет следующий случай.