Introducing ProtoSpector: A Burp Suite Extension for Analyzing, Tampering With, and Testing Protobuf and gRPC Traffic

Testing protocol buffers over HTTP can be a notoriously tedious process. Today, we’re excited to announce ProtoSpector, a Burp Suite extension designed to seamlessly decode and encode Protocol Buffer messages on the fly.

By eliminating the need to constantly switch to external tools or instrumented browser applications, ProtoSpector dramatically accelerates your testing workflow. Whether you want to import an existing Protobuf schema or reverse-engineer descriptors from scratch, this extension gives you the full capability to analyze, tamper with, and test gRPC traffic directly within Burp.

Features

🔄 Intelligent Message Decoding & Encoding

The extension automatically detects supported Protobuf content types and adds a ProtoSpector tab to the request view.

Two testing approaches are supported:

  • White-box Testing: Automatically matches and decodes messages using pre-loaded .proto schemas (.pb descriptor files compiled via protoc).

  • Black-box Testing: If no schema is found, it automatically infers the underlying structure, allowing you to view and fully edit the decoded message for outgoing requests (e.g., inside the Repeater tool).

ProtoSpector Request Tab

🛠️ Dynamic Signature Editing

For black-box testing scenarios, the ProtoSpector tab includes an interactive fields table that displays inferred message descriptors.

  • Inline Editing: Easily update field names or data types on the fly by clicking directly into the table cells.
  • Type Previewing: Instantly preview how any field renders when interpreted as a different data type, using the built-in selector. If a preview fails, it is typically due to an incompatibility, such as having insufficient bytes to parse the data into a larger type.

ProtoSpector Type Previewer

  • Toggleable Interface: The signature editing table can be hidden or shown at any time via the Settings tab.

🗺️ Advanced Schema & Method Management

  • Global Extension Tab: Deeply inspect, manage, and customize the signature of every loaded method descriptor across your entire session.

ProtoSpector Global Tab

  • gRPC Automation: Once a .pb file is loaded, you can select any gRPC method from the central list, right-click, and seamlessly Send to Repeater to automatically structure your request.

  • Auto-Generation: Clicking the ProtoSpector tab on an unknown request automatically generates and populates the global Method Descriptors tab with a brand-new descriptor.

Current Limitations & Roadmap

While the current version has some limitations, we are actively addressing them. Our immediate priorities include:

  • Expanded Content Type Support: We currently only support application/grpc-web+proto, application/grpc-web-text, and raw Protobuf (application/x-protobuf, application/protobuf, application/x-google-protobuf, application/vnd.google.protobuf). Future updates will expand support to include additional gRPC and Protobuf content types.

  • Enhanced Descriptor Management: Persistence functionality is currently limited when importing standalone Protobuf descriptors, which also cannot be edited at this time.

  • Refining Black-box Decoding Type Preview: We plan to refine type previewing to limit suggestions exclusively to valid field types. While repeated fields currently decode correctly, we plan to address intermittent failures in the type preview logic.

Contributing

We’d love to hear how you use ProtoSpector and what could make it better for your workflow. Whether it’s a bug report, a feature idea, or just general feedback, don’t hesitate to open an issue on GitHub or reach out on social media (@Doyensec). Pull requests are also very welcome!