15 критичных уязвимостей 2025 года по итогам реальных пентестов
В 2025 году специалисты АБП2Б провели десятки тестирований на проникновение для российских компаний — от небольших стартапов до крупных корпораций в банковской сфере, фармацевтике, ритейле и промышленности.
Казалось бы, сейчас все говорят о кибербезопасности. Требования к защите критической инфраструктуры ужесточаются, компании нанимают специалистов по ИБ, внедряют системы мониторинга. Но на практике картина оказалась неутешительной: одни и те же критические ошибки повторяются из проекта в проект, словно о них никто не знает.
Вот главная цифра, которая показывает масштаб проблемы: в 91% протестированных систем мы нашли хотя бы одну критическую уязвимость. Это серьёеные дыры, которые позволяют получить полный доступ к данным клиентов или взять под контроль всю систему. Оценка по шкале CVSS — 9.0 и выше из возможных 10.
Что самое показательное — большинство этих уязвимостей давно известны и описаны в учебниках. SQL-инъекции, открытые отладочные панели, пароли в коде, отсутствие проверки прав доступа. Это базовые ошибки, которых можно избежать еще на этапе разработки.
В этой статье мы разбираем 15 самых частых и опасных уязвимостей, которые мы находили в 2025 году. Все примеры — реальные кейсы из наших пентестов.
Описание методики тестирования: Использовалась методика автоматизированного тестирования (фаззинга) и ручного сбора конечных точек API.
Описание уязвимости: В ходе исследования ресурса была обнаружена прямая ссылка, которая выводит информацию о клиентах банка и включает в себя такие данные, как id, contactfio, phone, email, number, type, inn, lastlogintime. Все данные схожи с отображением в личном кабинете ресурса. Также присутствует потенциальная уязвимость удаления данных клиентов.
Влияние на систему:
Утечка конфиденциальных данных клиентов.
Потенциальное изменение целостности данных банка.
Эксплуатация уязвимости:
Этап перечисления директорий (фаззинг). Была запущена утилита перечисления директорий «FeroxBuster» с списком директорий «/seclists/Discovery/Web-Content/raft-medium-directories.txt». В результате работы утилиты была выявлена директория «/api/clients» при переходе которой пользователю отображалась вся информация о клиентах (id, contactfio, phone, email, number, type, inn, lastlogintime и т. д) банка, которая отображается в личном кабинете пользователя.
Этап ручного перечисления. Далее была выполнена попытка GET-запроса к пользователю по UUID: /api/client/{Client_UUID}. Идентификатор был получен ранее из /api/clients. В ответе получен JSON-объект с подробной информацией о пользователе.
Рекомендации:
Перенести open-crm.example.com и crm.example.com во внутренний периметр, ограничив внешний доступ.
Внедрить обязательную авторизацию и контроль прав доступа для всех API-методов.
Настроить ACL или WAF для ограничения методов GET и DELETE только для авторизованных пользователей.
Описание методики тестирования: Ручной анализ на наличие уязвимостей типа SQLi.
Описание уязвимости: На веб-сервисе присутствует тестовый API, который позволяет искать товары. При вводе спецсимволов в одно из полей было обнаружено, что ответ сервера изменяется. Далее была получена выдача всех товаров с помощью спецсимволов, что свидетельствует об отсутствии экранирования запросов к БД.
Влияние на систему:
Кража БД с конфиденциальными данными.
Удаление БД.
Создание аккаунта с правами администратора для дальнейших атак.
Эксплуатация уязвимости:
С помощью Burp Suite перехватить запрос к странице по указанному адресу.
Описание методики тестирования: Проведен сбор электронных почт и номеров телефона в открытых источниках (OSINT). Проведена атака грубой силы с использованием словаря с популярными паролями. Использовалась уязвимость выполнения команд (RCE) и SQL на сервере с помощью функционала Bitrix.
Описание уязвимости: При тестировании обнаружено, что отсутствует парольная политика и при регистрации учетной записи автоматически присваивается пароль, который состоит из 6-ти цифр. Данный пароль не является безопасным.
Для получения доступа к административной панели произведена атака грубой силы с использованием популярных паролей.
Влияние на систему:
Удаленное выполнение команд (RCE).
Выполнение SQL запросов с помощью функционала Bitrix.
Эксплуатация уязвимости:
Произведен сбор номеров телефона, электронных почт в открытых источниках.
Произведена атака Brute Force с использованием популярных паролей.
С помощью формы авторизации ресурса удалось получить доступ к административной панели Bitrix.
Удалось выполнить команду на сервере с помощью файла (/php_command_line.php), также удалось выполнить SQL запрос с помощью файла (/sql.php).
Рекомендации:
Включить защиту административной части в настройках проактивной защиты Bitrix
Внедрить механизм captcha на форму авторизации сервера.
Внедрить парольную политику, которая будет исключать использование небезопасных и популярных паролей.
Описание методики тестирования: Автоматизированный перебор доступных файлов.
Описание уязвимости: Доступны файлы на тестовом сервере, содержащие данные с информацией об устройстве бэкенда. Присутствует возможность подключения к базам данных на этом же хосте.
Влияние на систему: Полный доступ к данным клиентов и сотрудников, потенциально исполнение кода на серверах компании.
Эксплуатация уязвимости:
Были найдены следующие файлы, содержащие конфиденциальную информацию:
○ /nginx.conf
○ /www/bitrix/.settings.php
С помощью информации из файла можно подключиться к БД на этом же хосте с правами администратора.
Рекомендации:
Удалить директорию с приватными данными из доступных извне.
Описание методики тестирования: Использовалась методология тестирования OWASP A03:2021-Injection.
Описание уязвимости: Веб-ресурс имеет форму обратной связи, которая уязвима к внедрению команд. Для тестирования данной уязвимости вводилась команда «nslookup <collaborator>». Форма обратной связи использует сторонний ресурс, который является уязвимым.
Влияние на систему: Выполнение команд со стороны сервера (стороннего ресурса).
Эксплуатация уязвимости:
Выполним переход по ресурсу.
В форму обратной связи введем полезную нагрузку: cayay73050+||nslookup+t.r6y3wpw9zpi2lnqoibzaa5xep5vwjn7c.oastify.com||@betzenn.com
В Collaborator получим DNS обращение. Это дает нам понять, что уязвимость присутствует на сервере.
Рекомендации:
Если сторонний ресурс формы обратной связи принадлежит компании, то внедрить механизмы валидации пользовательского ввода, которые ограничивают использование специальных символов.
В случае, если сторонний ресурс не принадлежит компании, то ограничить использование стороннего ресурса.
Описание методики тестирования: Путём ручного просмотра веб-приложения и анализа HTTP-ответов было обнаружено, что Laravel Debugbar активен в публичном доступе и доступен неавторизованному пользователю.
Описание уязвимости: На веб-ресурсе обнаружена отладочная панель Laravel Debugbar. Наличие Debugbar раскрывает информацию, включая:
маршруты;
SQL-запросы;
логи;
пути к файлам проекта.
Влияние на систему:
Компрометация архитектуры приложения.
Утечка конфиденциальной информации о внутреннем устройстве приложения.
Получение доступа к страницам пользователей.
Получение смс-кода, отправленного для подтверждения на телефон жертвы.
Эксплуатация уязвимости:
Laravel Debugbar записывает все действия, которые происходили с веб-ресурсом и хранит не более 2х суток.
При отправлении запроса «GET /_debugbar/open?method=POST» можно получить весь список отправленных данных пользователей. Метод можно изменять, а также добавлять и другие фильтры.
При получении нужного ID, можно прочитать сам запрос с его содержимым «GET /_debugbar/open?op=get&id=<ID>», где <ID> - идентификатор, который мы получили ранее. В данном примере мы обнаружили банковскую карту пользователя и его номер телефона, также сессионный токен «Bearer <Token>».
При использовании данного токена, мы видим, что нам удалось захватить сессию.
Описание методики тестирования: Анализ конечных точек и их модификация с целью определения раскрытие информации.
Описание уязвимости: Веб-ресурс имеет функционал мониторинга и их различные функции. Найдена возможность выполнить снимок памяти процесса Java неавторизованному пользователю.
Получив снимок процесса Java (heapdump), пользователь может получить чувствительную информацию.
Влияние на систему:
Раскрытие чувствительной информации (логины, пароли, сессии, токены, внутренние IP и подобная информация).
Использование чувствительной информации для проведения атак (использование сессии и захват доступа).
Эксплуатация уязвимости:
Выполним запрос по адресу «/monitoring», получим JSON ответ с функционалом мониторинга.
Выполним запрос по адресу «/monitoring/heapdump», получим файл снимка памяти Java размером около 160 мб.
Выполним чтение файла с помощью команды string и grep. (strings heapdump | grep <STRING>), получим конфиденциальную информацию (логины, пароли, сессии, токены, внутренние IP и подобная информация).
Рекомендации:
Исключить возможность обращения к конечным точкам мониторинга для не аутентифицированных пользователей.
Если мониторинг требуется, выполнить перемещение его на внутренний адрес и предоставлять доступ только из внутренней сети.
Описание методики тестирования: Регистрация учетной записи и проверка безопасности полученного JWT.
Описание уязвимости: Приложение использует JWT для аутентификации и авторизации, но он имеет слабый секрет для их подписи. Злоумышленник, подобрав секрет, может вручную модифицировать сессионный токен (JWT), изменять текущего пользователя, уровень привилегий и время жизни сессии.
Влияние на систему:
Выполнять перечисление всех пользователей (Получение ФИО, номера телефона, почты).
Выполнять захват учетных записей пользователей.
Получать доступ в административные панели Birtix.
Изменять привилегии пользователя и изменять срок действия токена.
Эксплуатация уязвимости:
Выполним регистрацию учетной записи.
В «Burp Suite» перехватим запрос с JWT. (Например, /api/v4/site/profile/).
С помощью расширения «JWT Editor» выполним атаку грубой силы с целью получения Secret. Сохраним полученный секрет в файл.
Выполним изменение JWT с помощью расширения «JSON Web Tokens». Для этого в функционале «Load Secret» загрузим найденный Secret, далее изменим значение «user_id» на произвольный.
Перейдем во влкадку запроса «Pretty» и отредактируем заголовок «X-Bearer-Token:», нужно удалить слово «Bearer «(с пробелом в конце). Выполним отправку запроса.
В ответе от сервера получим информацию о пользователе.
Для получения доступа к «Админ панели Bitrix» было выбрано несколько пользователей, которые могут иметь такие привилегии (обычно, это первые идентификаторы пользователей) и использованы стандартные пароли в панели Bitrix. Таким образом, удалось захватить учетную запись администратора.
Рекомендации:
Секрет для подписи JWT должен быть случайно сгенерированным, длиной не менее 256 бит.
Использовать асимметричную криптографию (RSA256).
10. Фаззинг параметров (Brute Force) через Состояние гонки (Race Condition)
Описание методики тестирования: Произведена проверка возможности атаки Brute Force на форму авторизации, обнаружено ограничение ввода пароля при использовании более 5 попыток. Данное ограничение можно обойти с помощью атаки Race Condition.
Описание уязвимости: Уязвимость возникает из-за отсутствия синхронизации при обработке параллельных запросов на авторизацию. Несмотря на реализованное ограничение количества попыток ввода пароля (например, 5 попыток), ограничение можно обойти путём одновременной отправки большого количества запросов, один из которых содержит корректные учётные данные.
Это возможно благодаря состоянию гонки (Race Condition), когда сервер обрабатывает несколько параллельных авторизационных запросов до того, как блокировка на количество попыток срабатывает.
Влияние на систему: Захват учетной записи пользователя.
Эксплуатация уязвимости:
С помощью Burp Suite перехватим запрос авторизации.
С помощью Burp Suite Repeater создадим группу с 15-ю запросами, 1 из которых с верным паролем.
Выберем отправить запросы параллельно.
Смотрим каждый запрос и видим, что пароль подошел на 8-ом запросе.
Рекомендации:
Разработать механизм аутентификации в котором, если пароль будет введен верно, то запрашивать код из электронной почты или смс-сообщения (2fa).
Внедрить защиту от параллельных попыток.
Реализовать защиту по CAPTCHA.
11. Кража учётной записи пользователей (Account Takeover)
Описание методики тестирования: Использование функционала сброса пароля совместно с уязвимостью внедрения заголовка (Host Header Injections).
Описание уязвимости: При сбросе пароля пользователю отправляется письмо со ссылкой, содержащей токен восстановления, при формировании этой ссылки используется заголовок «Host» из входящего запроса, что позволяет злоумышленнику подменить его на собственный домен. В результате пользователь получает письмо с поддельной ссылкой, ведущей на сторонний сервер, где атакующий перехватывает токен сброса пароля и получает доступ к учетной записи.
Влияние на систему: Уязвимость позволяет выполнить захват учетной записи любого пользователя, зная его email. Это может привести к полной компрометации аккаунтов и несанкционированному доступу к данным и функциям системы.
Эксплуатация уязвимости:
Воспользуемся функционалом восстановления пароля и внедрим ранее созданный домен в заголовок Host.
Пользователь получит письмо на электронную почту с поддельной ссылкой восстановления пароля.
При переходе по ссылке восстановления пароля, злоумышленник, исследуя логи сервера, получит токен для восстановления пароля учетной записи.
Злоумышленник, используя данный токен, получает возможность изменения пароля учетной записи.
Удалось выполнить имитацию атаки и захватить доступ к учетной записи пользователя.
Рекомендации:
Исключить возможность использования внешнего значения заголовка Host при генерации ссылок в письмах. Использовать строго заданный домен из конфигурации сервера.
Выполнять валидацию заголовка Host со стороны сервера, если заголовок не принадлежит домену, то возвращать ответ с кодом 500 (Server error).
12. Получение чувствительной информации (CVE-2019-11248)
Описание методики тестирования: Произведена разведка с использованием ресурса search.censys.io. В ходе фаззинга директорий обнаружена отладочная конечная точка «/debug/pprof», доступная без аутентификации.
Описание уязвимости: Уязвимость CVE-2019−11 248 связана с тем, что отладочная конечная точка «/debug/pprof» (Go pprof endpoint) доступна без аутентификации через сервис node-exporter. Это позволяет злоумышленнику получить подробную информацию о внутреннем состоянии процесса.
Влияние на систему:
Раскрытие конфиденциальной информации.
При определенных условиях отказ в обслуживании сервиса.
Эксплуатация уязвимости:
Выполним запрос по адресу «/debug/pprof/», получен HTML-интерфейс с доступными профилями.
Выполним запрос с помощью Debug по адресу «/debug/pprof/goroutine?debug=2», получена информация о текущих goroutines.
Описание методики тестирования: Тестирование выполнено согласно методологии OWASP API Security Top 10 — API2:2023 (Broken Authentication).
Описание уязвимости: Уязвимость Broken Authentication проявляется в отсутствии аутентификации при выполнении чувствительных действий. В частности, изменения пароля учетной записи без подтверждения ввода текущего пароля.
Влияние на систему: Захват учётной записи путём замены пароля на доступной учетной записи.
Эксплуатация уязвимости:
Выполнить авторизацию на ресурсе (имитация получение доступа к учетной записи).
Используя функционал изменения пароля учетной записи, обнаружено, что данный функционал не выполняет повторную аутентификацию. «/personal/change-password/»
Рекомендации: Требовать повторную аутентификацию (ввод пароля) перед изменением чувствительных данных.
Описание методики тестирования: Ручное тестирование функционала с целью получения конфиденциальной информации.
Описание уязвимости: Веб-ресурс позволяет авторизованному пользователю выполнить фаззинг идентификатора, что приводит к раскрытию пользователей CRM системы.
Влияние на систему: Раскрытие ФИО, email, номера телефона и предпочтительный способ связи пользователей CRM системы.
Эксплуатация уязвимости:
Выполним регистрацию на ресурсе.
Выполним создание черновика.
Выполним модификацию данного запроса с помощью «Burp Suite» модуля «Repeater». Нужно изменить числовой идентификатор параметра «userId» на произвольный.
Отправим данный запрос и обновим страницу с черновиком. В окне черновика будет информация о пользователе.
Рекомендации:
Запретить регистрацию произвольным пользователям в CRM.
Внедрить контроль привилегий для параметра «userId» в целях контроля подмены идентификатора.
Описание методики тестирования: Анализ исходного кода.
Описание уязвимости: При исследовании файлов после RCE на другом хосте были обнаружены потенциальные исходники сервиса. В этих исходниках есть множество потенциальных SQL инъекций, но эксплуатировать их не получилось из-за нестабильности сервиса и отсутствия учётной записи, чтобы видеть результаты исполнения команд. Тем не менее, удалось подтвердить, что канал связи и методы из него существуют, следовательно, уязвимость присутствует.
Например, метод «GetPriceItem». В качестве параметра он принимает «ItemId» (записывается в переменную _0×275 495).
Данная переменная напрямую конкатенируется с запросом, что потенциально приводит к SQL-инъекции.
Влияние на систему: Потенциальный доступ к данным клиентов и сотрудников.
Эксплуатация уязвимости: Был написан PoC для запросов по вебсокетам. В данном примере делается запрос к существующему методу GetMainContent. В ответ приходит код для рендера страницы на фронтенде приложения. При попытке вызова методов с SQL инъекциями, сервер перестаёт стабильно работать.
socket.on («disconnect», () => { console.log («Disconnected from server»); });
Рекомендации: Заменить все SQL-запросы на параметризованные.
Что показывают цифры
Мы рассмотрели 15 наиболее критичных уязвимостей, обнаруженных в ходе пентестов АБП2Б в 2025 году. Эти кейсы взяты из реальных проектов компаний разного масштаба — от стартапов до крупных корпораций в банковской сфере, фармацевтике, ритейле и промышленности.
Что объединяет все эти случаи? Во-первых, большинство уязвимостей относятся к категории критических (CVSS 9.0−10.0) и позволяют получить полный доступ к системе или данным клиентов. Во-вторых, практически все они могли быть предотвращены еще на этапе разработки, соблюдением базовых принципов безопасного программирования, правильной настройкой серверов и внедрением парольной политики.
Особенно показательно, что одни и те же ошибки повторяются из проекта в проект: открытые debug-панели в production, слабые JWT-секреты, отсутствие авторизации на критичных API, SQL-инъекции из-за неэкранированного ввода. Это говорит не столько о сложности современных атак, сколько о системных пробелах в процессах разработки и тестирования.
Давайте посмотрим на общую статистику наших пентестов за 2025 год, чтобы понять реальный масштаб проблемы.
Распространённость уязвимостей:
91% протестированных проектов содержали критические уязвимости
67% хранили пароли и секретные ключи в коде или конфигурационных файлах
54% были уязвимы к SQL-инъекциям или внедрению команд
43% оставляли отладочные панели доступными из интернета
38% использовали слабые секреты для токенов или утекшие OAuth ключи
Основные проблемы:
Утечки настроек и паролей. Компании оставляли включёнными панели отладки на рабочих сайтах, хранили пароли от баз данных в открытых файлах, а секретные ключи — прямо в коде.
Нет защиты доступа. Важные функции работали без проверки прав — любой человек мог получить чужие данные или выполнить действия администратора.
Слабые пароли разрешены. Можно было поставить пароль «123 456», и никто не мешал перебирать пароли тысячами попыток.
Не проверяется ввод пользователей. Через формы на сайте можно было отправить команды базе данных или серверу, и они выполнялись.
Ненадёжные токены. Токены для входа создавались с простыми секретами, которые легко угадать, а OAuth ключи лежали в открытом коде сайта.
Особенности 2025 года:
Всё больше компаний используют микросервисную архитектуру, но забывают про защиту от одновременных запросов — это позволяет обходить ограничения на попытки входа;
Треть проектов хранит секретные ключи в коде сайта, где их может найти любой человек через браузер;
Классические уязвимости вроде SQL-инъекций и доступа к чужим данным встречаются так же часто, как 10 лет назад.
Рекомендации Для минимизации рисков компрометации систем рекомендуется:
Организационные меры:
Проводить регулярные тестирования на проникновение, особенно перед вводом; систем в промышленную эксплуатацию;
Внедрять автоматизированные сканеры безопасности в CI/CD pipeline;