Работы по анализу защищенности всегда начинаются с разведки — с изучения тестируемых ресурсов.
Перед началом работ владелец (заказчик) предоставляет перечень веб-приложений, защищенность которых требуется оценить. В данной статье мы не говорим о тестировании внешнего периметра, в рамках которого может встречаться множество веб-приложений, а рассматриваем отдельно взятое веб-приложение, которое захотел проверить заказчик. Доступ к тестируемому веб-приложению может быть предоставлен как в тестовой среде (так называемый dev-стенд, специально выданный к тестированию), так и в «боевой» среде (так называемая prod-среда — легитимное веб-приложение, которое функционирует в реальном времени и им параллельно пользуются иные пользователи).
Отдельно следует отметить изучение ролевой модели тестируемого приложения. На практике зачастую для этой подзадачи исследователю выдают тестовую (-ые) учетную запись (далее — УЗ) в зависимости от имеющихся ролей в конкретном веб-приложении. Здесь важно понимать отличие тестирования внешнего периметра, которое обычно проходит без УЗ (формат «black box», в котором без ограничения общности цель — проникновение во внутреннюю инфраструктуру), от тестирования отдельно взятого веб-приложения с объемной функциональностью и архитектурой, решающего прикладную бизнес-задачу. Чтобы изучить комплексно и емко тестируемый продукт, над которым трудилась целая команда разработчиков, необходимо смотреть на него с разных сторон (разных ролей пользователей), а не ограничиваться только лишь формой авторизации или доступными директориями без осуществления аутентификации. Это обусловлено тем, что вероятность в 2026 году найти уязвимость, например, позволяющую с помощью SQL-инъекции попасть в авторизованную или даже административную зону веб-ресурса через панель авторизации, мала (но никогда не равна нулю), то есть, из-за объемной функциональности и улучшающихся механизмов защиты в современных веб-приложениях редко встречаются такие банальные уязвимости, но в то же время остаются популярными ошибки контроля доступа (англ. Broken Access Control по OWASP Top 10 2025 г.) и для выявления данного класса уязвимостей зачастую нужна УЗ. Однако, существуют ситуации, когда тестовая УЗ не предоставляется, а регистрируется специалистом самостоятельно, если для этого действия с точки зрения бизнес-процессов не нужны дополнительные верификации третьей стороной (например, поход в банк, офис или регистрация на основе паспортных данных исследователя). Данные условия тестирования и формат работ обсуждаются перед активной фазой анализа защищенности веб-приложения.
Так или иначе получив перечень тестируемых веб-ресурсов и согласовав получение УЗ (выдана тестовая или зарегистрирована самостоятельно), специалисты по анализу защищенности переходят к их изучению. Так, при разведке осуществляется сбор следующих данных о приложениях:
- используемые языки программирования (PHP, Java, Python и т. д.);
- применяемые службы и плагины, например, если приложение разработано на базе системы управления содержимым сайта (Content Management System — CMS, примеры: Bitrix, Joomla, Wordpress) или использует на клиентской части jQuery — популярную библиотеку языка JavaScript;
- функциональность приложения, способы загрузки данных (формы обратной связи, авторизация пользователей и т. д.);
- перечень директорий и конечных точек (посредством автоматического обхода, так называемый краулинг, веб-ресурса, например, с помощью инструмента katana или напрямую перебором директорий по словарю).
При этом важно изучить не только используемые технологии, но и логику работы приложения и способы взаимодействия с пользователями. Так, в открытых источниках можно найти полезную информацию, позволяющую пользователю воспользоваться легитимной функциональностью, а для пентестера такая информация будет открывать один из путей проникновения или реализации деструктивных действий. Например, если в открытом доступе находятся сведения о парольной политике, то специалист по анализу защищенности может ею воспользоваться для перебора пароля и попытки входа от лица какого-либо пользователя.
От грамотного подхода на данном этапе зависит понимание архитектуры тестируемого веб-приложения и более качественный поиск потенциальных слабых мест.