GraphQL Introspection PoC
A Caido plugin designed as a Proof of Concept to automate discovery and introspection of public GraphQL APIs.
Context and Motivation
Although Caido has recently gone viral as a solid and modern alternative to BurpSuite Community (featuring an incredible interface and open source nature), it still has areas to mature.
Two key points where I found gaps were:
GqlOnaut was born to fill one of those gaps: GraphQL API auditing. Inspired by the famous Burp extension InQL, this plugin brings direct introspection capabilities to your Caido workflow.
What is Introspection?
Introspection is a native GraphQL feature that allows you to query the server about its own schema. It's like asking a database to draw its E-R diagram for you.
If a server has introspection enabled, you can ask it to reveal:
User, Product).Typical Queries
The plugin automates this, but under the hood, standard GraphQL system queries like these are happening:
1. List all Types
Retrieves all objects defined in the schema.
2. Investigate a Specific Type
Once you know a User type exists, you can ask what fields it has.
GqlOnaut executes these complex queries for you, building a visual representation of the schema so you don't have to write system queries manually.
Current Capabilities
Currently, support is limited to HTTP. We are actively working to bring WebSocket support in future versions, enabling real-time subscription auditing.
Test Endpoint
To see the plugin in action, use the public countries API:
https://countries.trevorblades.com/Try fetching the list of continents and their countries:
🛠️ Development & Installation
This plugin requires the Caido environment to run.
Prerequisites
pnpm create @caido-community/plugin.Getting Started
Clone the project and install dependencies:
To start the development server in "watch" mode:
The watch mode will automatically reload the plugin in your Caido instance whenever you save changes to the source code, speeding up rapid iterations.
🔮 Roadmap
This project is constantly evolving. The next major feature leverages new platform capabilities:
📚 Additional Resources
To dive deeper into developing extensions for this auditing platform:
_This plugin was developed as an initiative to improve security analysis and auditing tools in GraphQL ecosystems._