FixVibe

// 디스커버리 / 스포트라이트

GraphQL 인트로스펙션 노출

프로덕션의 인트로스펙션은 공격자에게 전체 타입 시스템을 그대로 넘겨주는 거예요.

핵심

GraphQL introspection is the spec's most developer-friendly feature and one of its most defender-unfriendly defaults. Send a query asking the server to describe itself, and a fully-introspected GraphQL endpoint dutifully returns every type, every field name and type, every argument, and (in many configs) every directive comment. It's how GraphiQL, Apollo Sandbox, and every modern GraphQL client tool work. It's also how attackers map your API in seconds. Apollo Server 4 disables introspection by default in production, but plenty of older deployments and self-rolled GraphQL servers still ship with it on, and the line between 'we want devs to use the explorer' and 'we exposed the entire data model to the internet' is one configuration flag.

어떻게 동작하나요

A `__schema` query — `{ __schema { types { name fields { name type { name } } } } }` — returns the complete type system. From that single response, the attacker reconstructs every query, mutation, subscription, the arguments each takes, and the relationships between types. Tools like graphql-voyager render the result as an interactive map. Combined with permissive resolvers (no per-query authorization), introspection is the input that makes targeted enumeration trivial. Even with strict authorization, knowing internal types like `_AdminInternal` or fields like `mfaSecret` is information the attacker shouldn't have.

피해 범위

Recon impact dominates — knowing the schema converts blind probing into surgical queries. Combined with authorization bugs (resolver-level IDOR, missing field-level auth), introspection is the recipe for efficient mass data extraction. Schema disclosure also reveals product roadmap details (unreleased fields and types) and internal naming conventions that may inform social engineering.

// what fixvibe checks

What FixVibe checks

FixVibe maps externally visible application surfaces with passive signals and safe metadata checks. Reports summarize the exposed surface and remediation priorities. For check-specific questions about exact detection heuristics, active payload details, or source-code rule patterns, contact support@fixvibe.app.

확실한 방어

Disable introspection in production. Apollo Server 4: `introspection: false` in config (already the default for production builds). Yoga: `useDisableIntrospection` plugin. Hot Chocolate (.NET): `.AddIntrospection(false)`. Hasura: set `HASURA_GRAPHQL_ENABLE_TELEMETRY=false` plus the per-role schema introspection toggle. Don't rely on rate-limiting introspection — one query is enough. For developer access, host a documentation site that's authenticated separately, or use schema diffing in CI to detect changes without exposing the full schema at runtime. As a defense-in-depth layer, also disable field-suggestion responses (most servers offer a flag for 'Did you mean X?' messages) since those leak schema details even when introspection is off.

// 내 앱에서 직접 실행해보세요

FixVibe가 지켜보는 동안 계속 배포하세요.

FixVibe는 공격자가 보는 것처럼 앱의 공개 영역을 압박 테스트합니다 — 에이전트도, 설치도, 카드도 필요 없어요. 새로운 취약점 패턴을 계속 연구해 실용적인 체크와 Cursor, Claude, Copilot에 바로 붙여넣을 수 있는 수정안으로 바꿉니다.

디스커버리
129
이 카테고리에서 실행되는 테스트
모듈
12
전용 디스커버리 검사
매 스캔
384+
모든 카테고리 합계 테스트
  • 무료 — 카드 없이, 설치 없이, Slack 알림 없이
  • URL만 붙여넣으세요 — 크롤, 탐지, 보고는 저희가
  • 심각도별 분류, 중복 제거된 신호만
  • 최신 AI 수정 프롬프트를 Cursor, Claude, Copilot에 바로 붙여넣기
무료 스캔 실행

// 최신 체크 · 실용적인 수정 · 자신 있게 배포

GraphQL 인트로스펙션 노출 — 취약점 스포트라이트 | FixVibe · FixVibe