Burp Suite Plugin: View and Modify WCF Binary SOAP Messages

Microsoft’s WCF Web Services have a binary encoded SOAP messaging mode available that Silverlight, WPF, and other thick client applications can use to communicate with an application server.  This format cannot be digested natively by Burp Suite, making it time consuming to analyze requests and responses. This post describes how the new extension API for Burp was used to overcome this challenge.

Several years back, Brian Holyfield wrote a plugin to add support for binary SOAP messages, but the extension framework for Burp at that time was limiting.  He was forced to use two Burp instances to accomplish encoding and decoding.  Now that a new extension framework has been released for Burp, I have reused some of his code and the NBFS.exe .NET console application to encode and decode WCF binary SOAP requests in a single Burp tab. The code and several screenshots can be found below.

WCF Binary SOAP Request:

SOAP Binary -> XML Request Body:

The plugin code is available as a gist at: https://gist.github.com/4420532

Previous Burp Plugin: New Burp Suite (>= 1.5.01) Extensibility and an Example Editor Tab Plugin