🔍 Пять простых способов найти баги в веб-приложении с GraphQL
Нашел хост GraphQL? Это тот самый строго типизированный язык запросов, который разработчики используют для простого извлечения данных.
💡 Мини-чек-лист для багхантера:
☑️ Запускаем introspection-запрос — получаем карту всех типов, запросов и мутаций.
☑️ Визуализируем структуру через GraphQL Voyager — это упростит анализ.
☑️ Используем BatchQL или расширение InQL — ищем IDOR, SQL-инъекции, SSRF и др.
☑️ Проверяем на CSRF, особенно если авторизация на основе cookie.
☑️ Тестим обход rate limit и DoS через батч-запросы.
🚀 Разберем подробнее
1️⃣ Introspection-запрос
Если включен — bingo. Получаем всю схему: типы, запросы, мутации. Собранную структуру удобно анализировать через GraphQL Voyager: он отлично фильтрует мутации и показывает архитектуру API.
2️⃣ Introspection отключен?
Не беда. GraphQL-серверы вроде Apollo часто поддерживают автодополнение: они подсказывают поля даже без схемы.
Вручную перебирать — боль, поэтому подключаем Clairvoyance: он восстанавливает схему даже без introspection.
3️⃣ CSRF
GraphQL сам по себе не защищен от CSRF. Если сессии на cookie, а не через Authorization-заголовок, — риск высокий. Пример: можно подделать запрос от пользователя без его ведома.
4️⃣ Обход лимитов
Многие лимиты считают HTTP-запросы, а не количество вложенных GraphQL-запросов.
GraphQL позволяет использовать алиасы: шлем кучу запросов в одном теле, сервер в шоке, лимит не триггерится.
5️⃣ DoS через батч-запросы
Если сервер не ограничивает число обработанных запросов в одной пачке — мы просто заваливаем его ресурсоемкими мутациями. Это может легко положить сервис.
💡 Автоматизация:
• BatchQL — проверка батчей, мутаций, SSRF, SQLi, IDOR и прочего.
• GraphQL Cop — делает 10+ тестов безопасности, включая CSRF.
• InQL — расширение для Burp Suite, идеально интегрируется и помогает в перехвате GraphQL-запросов.
P. S. При подготовке поста вдохновлялись статьей багбаунти-площадки Intigriti.
Post #30
3.4K






- 👍 12
- ❤ 10
- 👏 6
- 👎 1