Launch Burp from inside Fiddler
I've written the article about FiddlerScript last week and I've gotten reply like this:
Yes, I know Burp rulez but I love Fiddler without reason so match so that I've just written Fiddler Script for launching Burp. Add these code snippet to your CustomRules.js of FiddlerScript, you can see 2 menu items, "Launch burp" in Tools menu, "Use Upstream Burp" in "Rules" menu. Click "Launch burp" first and turn-on "Use Upstream Burp" to start inspecting http traffic with Burp.@hasegawayosuke Burp Suite(@Burp_Suite) Rulez!
— Jeremy Bae (@opt9) January 28, 2016
Enjoy!
class Handlers { public static const m_burpPort : String = "8080"; public static RulesOption( "Use Upstream &Burp" ) var m_UseBurp: boolean = false; public static ToolsAction( "Launch &burp" ) function launchBurp(){ const cmd = "cmd"; const cmdArgs = "/c java -jar -Xmx1024m"; const burpFolder = "C:\\Program Files (x86)\\burp"; var req : System.Net.HttpWebRequest; var res : System.Net.HttpWebResponse; var running : Boolean = false; var files : String[]; var i : Number; var burpJar : String = ""; try{ FiddlerObject.StatusText = "Checking burp already running"; var req = System.Net.HttpWebRequest( System.Net.WebRequest.Create( "http://localhost:" + m_burpPort ) ); req.Headers.Add( "X-check-burp", "1" ); res = System.Net.HttpWebResponse( req.GetResponse() ); if( res.StatusDescription === "OK" ){ running = true; } }catch( e ){ running = false; } if( !running ){ // search latest burp jar files = System.IO.Directory.GetFiles( burpFolder, "burpsuite*.jar" ); for( i = 0; i < files.length; i++ ){ if( files[ i ] > burpJar ){ burpJar = files[ i ]; } } if( burpJar === "" ){ FiddlerObject.alert( "nou found burpsuite*.jar in " + burpFolder ); return; } FiddlerObject.StatusText = "Launching burp..."; System.Diagnostics.Process.Start( cmd, cmdArgs + " \"" + burpJar + "\"" ); FiddlerObject.StatusText = ""; }else{ FiddlerObject.StatusText = "burp is already running"; } } static function OnBeforeRequest(oSession: Session) { if( oSession.oRequest.headers.Exists( "X-check-burp" ) ){ oSession["ui-hide"] = "burp"; } if( m_UseBurp ){ oSession.bypassGateway = false; oSession[ "x-overrideGateway" ] = "localhost:" + m_burpPort; } } }