Основные типы веб-уязвимостей, которые являются результатом ошибок при разработке или проектировании веб-приложения.
Одно из применений CSRF — эксплуатация пассивных XSS, обнаруженных на другом сервере. Так же возможны отправка писем (спам) от лица жертвы и изменение каких-либо настроек учётных записей на других сайтах (например, секретного вопроса для восстановления пароля).
Сейчас XSS составляют около 15 % всех обнаруженных уязвимостей. Долгое время программисты не уделяли им должного внимания, считая их неопасными. Однако это мнение ошибочно: на странице или в HTTP-Cookie могут быть весьма уязвимые данные (например, идентификатор сессии администратора).
По механизму исполнения атаки XSS можно разделить на активные и пассивные.
При активных XSS вредоносный скрипт хранится на сервере, и срабатывает в браузере жертвы при открытии какой-либо страницы заражённого сайта.
Пассивные XSS подразумевают, что скрипт не хранится на сервере уязвимого сайта, либо он не может автоматически выполниться в браузере жертвы. Для срабатывания пассивной XSS требуется некое дополнительное действие, которое должен выполнить браузер жертвы (например, клик по специально сформированной ссылке).
—
eval()
—
preg_replace()
(с модификатором «e»)—
require_once()
—
include_once()
—
include()
—
require()
—
create_function()
PHP-инъекция становится возможной, если входные параметры принимаются и используются без проверки.
Атака типа внедрения SQL может быть возможна из-за некорректной обработки входящих данных, используемых в SQL-запросах.
XFR данные могут использоваться, чтобы найти почтовые ретрансляторы, прокси серверы, хосты с определенными OS или установленными приложениями.
Когда DNS-сервер получает AXFR-запрос он отдает все данные, которые ему известны для запрошенного домена. Подразумевается, что такой запрос придет от DNS-сервера, который пытается выполнить трансфер зоны (перенести домен к себе, реплицировать). Но если DNS-сервер сконфигурирован неверно, любой пользователь может получить доступ к этим данным.
Очень часто сайты имеют «секретные» поддомены (dev.*, test.* и подобные) для внутреннего использования. Обычно, эти домены имеют небезопасную конфигурацию (включенный stacktrace для dev доменов) или разрабатываемые фичи.
— предопределенные;
— внутренние;
— внешние.
Атака XML External Entity — пример предопределенной сущности: » (символ двойной кавычки). Пример внутренней сущности: <!ENTITY pentest «hek»> … &pentest;. Внешние сущности ссылаются на сторонние файлы. Атака XML eXternal Entity заключается в использовании внешних сущностей. <!ENTITY epicwin SYSTEM «file:///etc/passwd»>. Фикс — запретить использование внешних сущностей: DOMDocument::loadXML($xml, LIBXML_NOENT);.
В результате успешной реализации этой атаки злоумышленник может выполнить следующие действия:
— межсайтовое выполнение сценариев;
— модификация данных кэша сервера-посредника;
— межпользовательская атака (один пользователь, одна страница, временная подмена страницы);
— перехват страниц, содержащих пользовательские данные.
Обычно DoS атаки направлены на исчерпание критичных системных ресурсов, таких как вычислительные мощности, оперативная память, дисковое пространство или пропускная способность каналов связи. Если какой-то из ресурсов достигнет максимальной загрузки, приложение целиком будет недоступно.
Атаки могут быть направлены на любой из компонентов Веб-приложения, например, такие как сервер СУБД, сервер аутентификации и т.д.
В некоторых случаях к DDoS-атаке приводит легитимное действие, например, простановка ссылки на сайт, размещённый на не очень производительном сервере. Большой наплыв пользователей приводит к превышению допустимой нагрузки на сервер и отказу в обслуживании части из них.
Перед генерацией HTML страницы сервер может выполнять сценарии, например Server-site Includes (SSI). В некоторых ситуациях исходный код страниц генерируется на основе данных, предоставленных пользователем. Если атакующий передает серверу операторы SSI, он может получить возможность выполнения команд операционной системы или включить в нее запрещенное содержимое при следующем отображении.
Язык XPath 1.0 разработан для предоставления возможности обращения к частям документа на языке XML. Он может быть использован непосредственно либо в качестве составной части XSLT-преобразования XML-документов или выполнения запросов XQuery.
Использование Немезида ВАФ позволит блокировать попытки эксплуатации таких уязвимостей.