M
METASCAN News & PoC
@metascan_news
27.04.2026 13:37
👾Атаки на веб-кэш: как стандартный функционал приводит к утечке персональных данных

Технология кэширования применяется повсеместно. Однако неверная конфигурация может привести к критическими уязвимостями: от утечки API-ключей и токенов доступа до раскрытия персональных данных.

Обман кэша (Cache Deception)

Если кэширующие механизмы веб-сервера настроены некорректно, злоумышленник может реализовать такой сценарий атаки:

🔹 Идентифицировать эндпоинты, возвращающие критическую информацию. Например: /api/v1/api_token.

🔹 Сформировать ссылку с использованием расширения, которое кэшируется согласно конфигурации веб-сервера: https://vulnerable-site.com/api/v1/api_token/file.css.

🔹 Как только жертва перейдёт по ссылке, веб-сервер вернёт стандартный контент для этого эндпоинта, но кэширующий сервер, идентифицировав запрашиваемый файл как .css, создаст кэш-копию страницы с тем содержимым, которое было доставлено жертве.

🔹 После этого атакующий может снова запросить ту же ссылку. Кэширующий сервер вернёт сохранённую копию, в которой будет и секретный ключ жертвы.

Громкий случай подобной атаки затронул крупнейшего провайдера ИИ-решений — ChatGPT от OpenAI. В результате эксплуатации подобной уязвимости был возможен полный захват аккаунта жертвы.

Отравление кэша (Cache Poisoning)

Атаки на кэш не ограничиваются утечкой данных, они также применяются для доставки вредоносного кода — это называется отравлением кэша. Суть в том, что при обработке запроса веб приложения могут отображать значения заголовков в содержимом страницы, среди таких:

User-Agent
Cookie
X-Forwarded-Host
X-Host
X-Forwarded-Server
X-Forwarded-Scheme
X-Original-URL (Symfony)
X-Rewrite-URL (Symfony)

Доставить полезную нагрузку в значении заголовка жертве напрямую невозможно, однако злоумышленник может воспользоваться особенностями кэширования, чтобы выполнить атаку. Для этого достаточно сформировать запрос вида:

GET /test?buster=123 HTTP/1.1
Host: vulnerable-host.com
X-Forwarded-Host:
test"><script>alert(1)</script>

В ответ сервер вернёт страницу с внедрённым кодом, сохранив её в кэше:

HTTP/1.1 200 OK
Cache-Control: public, no-cache
...
<meta property="og:image"
content="https://test"><script>alert(1)</script>">

После этого атакующему остаётся только отправить жертве ссылку на закэшированную страницу: https://vulnerable-host.com/test?buster=123. При переходе кэширующий сервер отдаст сохранённую вредоносную копию, и внедрённый JavaScript-код сработает в браузере жертвы.

Предотвращение атак на кэш

Для защиты от подобных атак рекомендуется:

🔹 применять надёжные регулярные выражения для правил кэширования на стороне сервера;

🔹 использовать для динамических страниц заголовки Cache-Control
со значениями no-store и private;

🔹 убедиться, что CDN-сервер не перезаписывает критически важные правила кэширования, заданные на бэкенде.

Специалисты METASCAN готовы провести аудит ваших веб-сервисов на предмет уязвимостей данного класса и предоставить рекомендации по их устранению.

#Metascan #pentest #redteam #Metascan_news
🔥 5
👍 4
👀 2
1
3 507

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram
M

METASCAN News & PoC

387
Сканер уязвимостей с экспертным сопровождением: https://metascan.ru
Открыть в Telegram