Перейти к содержимому

Поиск по платформе

SSRF к облачным метаданным через обход проверки IP

Приложение блокирует только loopback-адреса, но не link-local 169.254.169.254 — атакующий читает облачные метаданные AWS.

Автор: Hack & Fix
Освоишь: allowlist URLmetadata-guard 169.254DNS-rebinding защита
Средне+60 XP ~35 мин php
CWE-918 · A10:2021 Pro
Обложка: SSRF к облачным метаданным через обход проверки IP Обложка: SSRF к облачным метаданным через обход проверки IP
Задача
# SSRF: доступ к метаданным облака через неполную фильтрацию адресов ## Сценарий Интернет-магазин **CloudNomad** работает на облачных виртуальных машинах, и команда добавила в каталог виджет предпросмотра внешних ссылок: покупатель вводит адрес, сервер запрашивает его со своей стороны и показывает содержимое — так менеджеры проверяют картинки и описания партнёрских товаров. После прошлогоднего пентеста к виджету прикрутили защиту от SSRF, но реализовали её наспех — сравнением имени хоста с коротким списком «локальных» строк. Вас пригласили проверить, держит ли эта защита удар. ## Цель 1. Войдите как обычный пользователь и найдите виджет предпросмотра ссылок. 2. Убедитесь, что явные локальные адреса фильтр отбрасывает. 3. Найдите представление адреса или класс адресов, который фильтр пропускает, и через него доберитесь до симулятора сервиса метаданных, развёрнутого рядом с приложением. 4. Извлеките флаг из ответа симулятора. ## Теория **Server-Side Request Forgery (SSRF)** — атакующий заставляет приложение выполнить запрос по выбранному им адресу от имени сервера. В облачной среде самая ценная цель SSRF — сервис метаданных: каждый крупный провайдер разворачивает его на каждом инстансе по внутреннему адресу метаданных облака, недоступному снаружи. Помимо образа и региона сервис отдаёт временные учётные данные IAM-роли инстанса — захватив их через SSRF, атакующий получает доступ к ресурсам облака от имени приложения. Это один из самых дорогих облачных эксплойтов в истории. **Уязвимый паттерн:** ```php // Наивная защита: сравнение хоста с несколькими строками $blocked = ['127.0.0.1', 'localhost', '::1']; return in_array(strtolower($host), $blocked, true); ``` Фильтр работает со строками, а не с адресами. Один и тот же loopback-адрес записывается десятками способов — десятичным, восьмеричным, шестнадцатеричным числом, именем хоста — и строковое сравнение пропускает почти все записи. Хуже того, список охватывает лишь один класс адресов: частные сети, link-local-диапазон (где живут сервисы метаданных) и прочие зарезервированные диапазоны остаются полностью открытыми. Безопасность SSRF определяется IP-диапазоном после резолва имени, а не текстом в URL. ## Точка входа атаки `POST /preview` — виджет предпросмотра ссылок, поле `url`. * **Обычный пользователь:** `demo` / `demo` * **Цель:** симулятор сервиса метаданных облака; в его ответе среди строк окружения инстанса спрятан флаг

Похожие лабораторные (4)

другие лабы по этой уязвимости
Обложка лабы: SSRF через file_get_contents() в загрузке аватара Обложка лабы: SSRF через file_get_contents() в загрузке аватара
SSRF

SSRF через file_get_contents() в загрузке аватара

Приложение загружает аватар по URL без проверки — атакующий может обратиться к внутренним сервисам.

+30 XP
PHP Pro
Exploit Fix
Обложка лабы: SSRF через обход проверки IP с помощью HTTP-редиректа Обложка лабы: SSRF через обход проверки IP с помощью HTTP-редиректа
SSRF

SSRF через обход проверки IP с помощью HTTP-редиректа

Приложение проверяет IP адрес при первом запросе, но cURL автоматически следует редиректам на внутренние адреса — атакующий обходит проверку через промежуточный сервер.

+90 XP
PHP Pro
Exploit Fix
Обложка лабы: Bypass SSRF: Обход фильтров хоста Обложка лабы: Bypass SSRF: Обход фильтров хоста
SSRF

Bypass SSRF: Обход фильтров хоста

SSRF с обходом слабого фильтра хоста в URL и эксплуатация через альтернативные IP-адреса.

+60 XP
Go Pro
Exploit Fix
Обложка лабы: SSRF Cloud Metadata: Доступ к метаданным облака Обложка лабы: SSRF Cloud Metadata: Доступ к метаданным облака
SSRF

SSRF Cloud Metadata: Доступ к метаданным облака

SSRF-уязвимость: неполная фильтрация IP позволяет обратиться к link-local адресу облачных метаданных (169.254.169.254).

+60 XP
Go Pro
Exploit Fix