24SEC CHECKSECURITY ASSESSMENT
← На сайт
ДЕМОНСТРАЦИОННЫЙ ОТЧЁТВсе домены, адреса и результаты вымышлены. Это пример структуры, а не результат реального сканирования.
EXTERNAL SECURITY ASSESSMENTЗАВЕРШЁН

Отчёт о внешней
безопасности

Автоматизированный аудит веб-приложения, API и доступной извне инфраструктуры.

ОБЪЕКТ ПРОВЕРКИdemo-shop.exampleТариф «Бизнес» · внешняя проверка
ПЕРИОД22–24 сентября 2026
ВЕРСИЯ1.0 / Final
КОНФИДЕНЦИАЛЬНОСТЬДля заказчика
01РЕЗЮМЕ ДЛЯ РУКОВОДИТЕЛЯ

Общая оценка

За время проверки проанализированы основной сайт, два поддомена и публичное API. Подтверждена критическая SQL Injection и три находки высокого риска.

41/100
ВЫСОКИЙ
РИСК
3актива в scope
47endpoint API
1критический риск
3высокий риск
3средний риск
4рекомендации
!
Главный риск

Параметр сортировки каталога допускает изменение SQL-запроса. Дополнительно обнаружены публичная резервная копия, нарушение объектной авторизации API и секрет интеграции в source map.

Что это означает

При эксплуатации подтверждённых проблем посторонний пользователь потенциально сможет получить технические секреты и данные другого клиента. Признаков фактической компрометации в рамках проверки не выявлено.

Что делать сначала

Закрыть публичный доступ к резервным копиям, отозвать попавшие в них секреты и внедрить серверную проверку принадлежности объектов во всех методах API.

02ГРАНИЦЫ ПРОВЕРКИ

Scope и ограничения

Проверка выполнялась только для письменно согласованных активов. Разрушающие действия, DoS, социальная инженерия и проверка сторонних поставщиков не проводились.

АктивНазначениеПроверкиСтатус
demo-shop.exampleОсновной сайтWeb, CMS, TLS, DASTПроверен
api.demo-shop.exampleПубличное APIOpenAPI, auth, DASTПроверен
cdn.demo-shop.exampleСтатические файлыКонфигурация, файлыПроверен
Включено2 тестовые роли47 API endpointБезопасные активные payload
ИсключеноНагрузочное тестированиеПлатёжный провайдерФишинг и сотрудники
03ВНЕШНЯЯ ПОВЕРХНОСТЬ

Что видно из интернета

◎
ДОМЕНЫ12 найдено

3 входят в scope, 7 перенаправляют на основной сайт, 2 требуют уточнения владельца.

⌁
СЕРВИСЫ8 доступны

HTTPS, API gateway, CDN и почтовая инфраструктура. Неожиданных административных портов не найдено.

{ }
ТЕХНОЛОГИИ6 определено

Nginx, PHP, CMS, JavaScript-фреймворк, CDN и API gateway. Версии указаны только при надёжном определении.

demo-shop.exampleMAIN APPLICATION
api.demo-shop.example47 ENDPOINTS
cdn.demo-shop.exampleSTATIC ASSETS
payment.exampleOUT OF SCOPE
04ПОДТВЕРЖДЁННЫЕ НАХОДКИ

Риски и доказательства

Автоматические сигналы включаются в основной список только после воспроизводимой проверки. Неподтверждённые сигналы вынесены отдельно.

11всего
CRITICAL
24SC-001 · INJECTION

SQL Injection в параметре сортировки каталога

9.1CVSS

Параметр sort передаётся в SQL-запрос без безопасной параметризации. Контрольные логические выражения воспроизводимо изменяют количество элементов в ответе. Извлечение данных не проводилось.

ENDPOINTGET /api/v1/catalog/search
СТАТУСПодтверждено
УВЕРЕННОСТЬВысокая
CWECWE-89
БЕЗОПАСНОЕ ВОСПРОИЗВЕДЕНИЕбез извлечения данных
GET /api/v1/catalog/search?sort=price%27
→ 500 Internal Server Error
→ "unterminated quoted string"

sort=price' AND '1'='1  →  200 / count: 284
sort=price' AND '1'='2  →  200 / count: 0

Результат стабилен в 3 контрольных запросах.

Возможное влияние

Чтение или изменение данных приложения, обход отдельных проверок и потенциальная компрометация базы данных.

Как исправить

  1. Заменить динамическую сборку SQL на параметризованные запросы.
  2. Разрешать сортировку только по серверному списку полей.
  3. Ограничить права учётной записи БД и добавить регрессионный тест.
HIGH
24SC-002 · КОНФИГУРАЦИЯ

Резервная копия доступна без авторизации

8.1CVSS

На CDN обнаружен архив резервной копии приложения. Сервер возвращает файл без авторизации; внутри присутствует конфигурационный файл с тестовым секретом интеграции.

АКТИВcdn.demo-shop.example
СТАТУСПодтверждено
УВЕРЕННОСТЬВысокая
CWECWE-538
ТЕХНИЧЕСКОЕ ДОКАЗАТЕЛЬСТВОсекреты замаскированы
GET /backup/site-backup.zip HTTP/1.1
Host: cdn.demo-shop.example

HTTP/1.1 200 OK
Content-Type: application/zip
Content-Length: 2 481 934

archive/config.env:
INTEGRATION_TOKEN=demo_****************

Возможное влияние

Раскрытие исходного кода, внутренних адресов и секретов интеграций. Секрет следует считать скомпрометированным даже после удаления архива.

Как исправить

  1. Немедленно закрыть и удалить файл из публичного хранилища.
  2. Отозвать и перевыпустить обнаруженный секрет.
  3. Запретить публикацию архивов на уровне CI/CD и CDN.
HIGH
24SC-003 · API / ACCESS CONTROL

Недостаточная проверка принадлежности заказа

7.5CVSS

Пользователь с ролью «Клиент» может запросить сведения о заказе другой тестовой учётной записи, изменив числовой идентификатор в API-запросе.

ENDPOINTGET /api/v1/orders/{id}
СТАТУСПодтверждено
РОЛИcustomer-a / customer-b
CWECWE-639
ВОСПРОИЗВЕДЕНИЕперсональные данные удалены
Authorization: Bearer <token-customer-a>
GET /api/v1/orders/1048  →  200 OK

{
  "id": 1048,
  "owner": "customer-b",
  "status": "paid",
  "total": 12800
}

Возможное влияние

Несанкционированный доступ к данным других клиентов и нарушение конфиденциальности заказов.

Как исправить

  1. Проверять принадлежность объекта текущему пользователю на сервере.
  2. Применить единый middleware авторизации ко всем объектным endpoint.
  3. Добавить негативные тесты для каждой роли.
HIGH24SC-004

Секрет интеграции опубликован в JavaScript source map

Подтверждено
MEDIUM24SC-005

Ответ API раскрывает SQL-ошибку, таблицу и имя драйвера БД

Подтверждено
MEDIUM24SC-006

Политика CSP допускает небезопасные inline-скрипты

Подтверждено
MEDIUM24SC-007

Отсутствует ограничение частоты запросов восстановления пароля

Подтверждено
LOW24SC-008

Определён компонент с доступным обновлением безопасности

Требует обновления
INFO24SC-009–011

Дополнительные рекомендации по TLS, cookie и заголовкам

Рекомендации
АВТОМАТИЧЕСКИЕ СИГНАЛЫ2 результата не вошли в подтверждённые находки

Один потенциальный open redirect и один сигнал SQL Injection не воспроизвелись при контрольной проверке. Они сохранены в приложении отчёта для прозрачности.

05АНАЛИЗ API

Покрытие API

47ENDPOINT
42проверено
3требуют роль администратора
2исключено из scope
ГруппаМетодыAuthРезультат
/auth8public / token1 замечание
/catalog11publicбез замечаний
/orders16customer1 высокий риск
/profile7customerбез замечаний
/admin5adminчастично
Проверено:аутентификацияобъектная авторизациявалидация входных данныхизбыточная выдачаrate limitобработка ошибок
06ПЛАН ИСПРАВЛЕНИЙ

Приоритетный план действий

P0

Снизить непосредственный риск

  • Закрыть SQL Injection и временно ограничить уязвимый endpoint
  • Удалить публичную резервную копию
  • Отозвать раскрытые секреты интеграций
  • Ограничить доступ к затронутому объектному API
P1

Устранить корневые причины

  • Внедрить единый контроль принадлежности объектов
  • Обновить уязвимый компонент
  • Добавить rate limit для восстановления доступа
P2

Усилить базовую защиту

  • Ужесточить CSP и cookie
  • Добавить security-тесты в CI/CD
  • Провести контрольную проверку исправлений
✓

Что уже сделано хорошо

  • TLS 1.0 и 1.1 отключены
  • Административные интерфейсы не доступны извне
  • Cookie сессии используют Secure и HttpOnly
  • Ошибки API не раскрывают stack trace
07МЕТОДИКА И ОГРАНИЧЕНИЯ

Как получен результат

01

Разведка

DNS, сертификаты, архивные данные, поддомены и доступные сервисы.

02

Картирование

Технологии, страницы, JavaScript, API-схемы и роли.

03

Проверка

Безопасные DAST-проверки и анализ конфигурации в согласованном scope.

04

Верификация

Контрольное воспроизведение, удаление дублей и оценка влияния.

OWASP WSTGOWASP ASVSOWASP API TOP 10CVSS 3.1CWE