55

Become a Web Debugging Virtuoso with Fiddler

  • Upload
    china

  • View
    126

  • Download
    0

Embed Size (px)

DESCRIPTION

PDC09-CL25. Become a Web Debugging Virtuoso with Fiddler. Eric Lawrence Program Manager Microsoft Corporation. Fiddler: Origins. Once upon a time…. Oh no! What happened?!?. There must be a better way…. Fiddler: Origins. Fiddler: Origins. Fiddler: Origins. Fiddler: Origins. +. - PowerPoint PPT Presentation

Citation preview

Page 1: Become a Web Debugging Virtuoso with Fiddler
Page 2: Become a Web Debugging Virtuoso with Fiddler
Page 3: Become a Web Debugging Virtuoso with Fiddler
Page 4: Become a Web Debugging Virtuoso with Fiddler
Page 5: Become a Web Debugging Virtuoso with Fiddler
Page 6: Become a Web Debugging Virtuoso with Fiddler
Page 7: Become a Web Debugging Virtuoso with Fiddler

ApplicationsNetwork

APIsProxy Website

Page 8: Become a Web Debugging Virtuoso with Fiddler
Page 9: Become a Web Debugging Virtuoso with Fiddler
Page 10: Become a Web Debugging Virtuoso with Fiddler

+

Page 11: Become a Web Debugging Virtuoso with Fiddler
Page 12: Become a Web Debugging Virtuoso with Fiddler
Page 13: Become a Web Debugging Virtuoso with Fiddler
Page 14: Become a Web Debugging Virtuoso with Fiddler

Fiddler 2

Fiddler ScriptEngineFiddler ScriptEngine

Inspector2Inspector2

Inspector2Inspector2

IFiddlerExtension

IFiddlerExtension

IFiddlerExtension

IFiddlerExtension

Fiddler ProxyFiddler Proxy

Your FiddlerScript

Your FiddlerScript

Xceed*.dllXceed*.dll Makecert.exeMakecert.exe

You

r A

uto

mati

on

You

r A

uto

mati

on

Page 15: Become a Web Debugging Virtuoso with Fiddler
Page 16: Become a Web Debugging Virtuoso with Fiddler
Page 17: Become a Web Debugging Virtuoso with Fiddler

Internet Explorer

WinINET

Office

CryptoAPI WinHTTP

Fiddler

Firefox

Upstream Proxy

example.com

Firewall

Page 18: Become a Web Debugging Virtuoso with Fiddler
Page 19: Become a Web Debugging Virtuoso with Fiddler

Fiddler InternetInternet

Page 20: Become a Web Debugging Virtuoso with Fiddler
Page 21: Become a Web Debugging Virtuoso with Fiddler

Internet Explorer

WinINET

Office

CryptoAPI WinHTTP

Fiddler(Port 80)

Firefox

Upstream Proxy

IIS or Apache(Port 81)

Firewall

Page 22: Become a Web Debugging Virtuoso with Fiddler

Fiddler dynamically generates interception certificates chained to a self-signed root.

Page 23: Become a Web Debugging Virtuoso with Fiddler
Page 24: Become a Web Debugging Virtuoso with Fiddler
Page 25: Become a Web Debugging Virtuoso with Fiddler
Page 26: Become a Web Debugging Virtuoso with Fiddler
Page 27: Become a Web Debugging Virtuoso with Fiddler
Page 28: Become a Web Debugging Virtuoso with Fiddler
Page 29: Become a Web Debugging Virtuoso with Fiddler
Page 30: Become a Web Debugging Virtuoso with Fiddler
Page 31: Become a Web Debugging Virtuoso with Fiddler

Use WinDiff to compare HTTP requests and responses.

Page 32: Become a Web Debugging Virtuoso with Fiddler

http://websecuritytool.codeplex.com/

Page 33: Become a Web Debugging Virtuoso with Fiddler
Page 34: Become a Web Debugging Virtuoso with Fiddler
Page 35: Become a Web Debugging Virtuoso with Fiddler

Use Fiddler inspectors to

modify requests and responses….

Page 36: Become a Web Debugging Virtuoso with Fiddler

Flag, modify or remove headers from all requests and

responses.

Page 37: Become a Web Debugging Virtuoso with Fiddler

Create hand-built HTTP requests, or

modify and reissue a request previously captured.

Page 38: Become a Web Debugging Virtuoso with Fiddler

Replay previously captured or generated traffic.

Page 39: Become a Web Debugging Virtuoso with Fiddler
Page 40: Become a Web Debugging Virtuoso with Fiddler

static function OnBeforeRequest(oS: Session){

if (oS.uriContains(".aspx")) { oS["ui-color"] = "red";}

if (m_DisableCaching){ oS.oRequest.headers.Remove("If-None-Match"); oS.oRequest.headers.Remove("If-Modified-Since"); oS.oRequest["Pragma"] = "no-cache"; }}

Page 41: Become a Web Debugging Virtuoso with Fiddler

static function OnBeforeResponse(oS: Session) {

oS.utilDecodeResponse(); oS.utilPrependToResponseBody("Injected Content!");

}

Page 42: Become a Web Debugging Virtuoso with Fiddler
Page 43: Become a Web Debugging Virtuoso with Fiddler
Page 44: Become a Web Debugging Virtuoso with Fiddler
Page 45: Become a Web Debugging Virtuoso with Fiddler
Page 46: Become a Web Debugging Virtuoso with Fiddler

Timeline view of Buffering Mode

Timeline view of Streaming Mode

Page 47: Become a Web Debugging Virtuoso with Fiddler
Page 48: Become a Web Debugging Virtuoso with Fiddler
Page 49: Become a Web Debugging Virtuoso with Fiddler

oCDS.dwData = 61180; // Magic CookieoCDS.cbData = strlen(sData);oCDS.lpData = sData;

SendMessage( FindWindow(NULL, "Fiddler - HTTP Debugging Proxy"),WM_COPYDATA,NULL,(LPARAM) &oCDS);

Page 50: Become a Web Debugging Virtuoso with Fiddler

>>FUTURE

Fiddler 2

Fiddler ScriptEngineFiddler ScriptEngine

Inspector2Inspector2

Inspector2Inspector2

IFiddlerExtension

IFiddlerExtension

IFiddlerExtension

IFiddlerExtension

FiddlerCoreFiddlerCore

YourApp.exeYourApp.exe

FiddlerCoreFiddlerCore

Fiddler application with extensions

Your application hosting FiddlerCore

Your FiddlerScript

Your FiddlerScript

Xceed*.dll

Xceed*.dll

Makecert.exe

Makecert.exe Makecert.ex

eMakecert.ex

e

Page 51: Become a Web Debugging Virtuoso with Fiddler

// Call Startup to tell FiddlerCore to begin // listening on the specified port, register as // the system proxy and decrypt HTTPS traffic.Fiddler.FiddlerApplication.Startup(8877, true, true);

Fiddler.FiddlerApplication.BeforeResponse += delegate(Fiddler.Session oS) { Console.WriteLine("{0}:HTTP {1} for {2}", oS.id, oS.responseCode, oS.fullUrl); }; // Call Shutdown to tell FiddlerCore to stop// listening and unregister as the system proxyFiddler.FiddlerApplication.Shutdown();

Page 52: Become a Web Debugging Virtuoso with Fiddler

>>FUTURE

Page 53: Become a Web Debugging Virtuoso with Fiddler
Page 54: Become a Web Debugging Virtuoso with Fiddler

Built by Developers for Developers….

Page 55: Become a Web Debugging Virtuoso with Fiddler

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.