Advanced Web Debugging with Fiddler

On this post, I will introduce a penetration of the web test development industry. It is more popular a web traffic capture package analysis tool. Fiddler’s function here is not to say, a simple summary is to capture the package, change the package, replay. The focus of this article is not to introduce the basic usage of Fiddler, but to introduce how to build their own custom programming Fiddler. Most of the contents of this article from the Internet, such as the contents of the old can be self-bypass, all when the personal inquiries, can be sprayed.

Modify the rules file CustomRules.js

CustomRules.js is written in Jscript.NET and has a syntax similar to C #. By modifying the CustomRules.js can modify the http request and response, without interrupting the program, you can also do a special treatment for different url.

CustomRules.js file location

Fiddler Tools Menu Bar:

Local computer disk storage address:
C:\Documents and Settings\[your user]\MyDocuments\Fiddler2\Scripts\CustomRules.js

Common content

First share a common content:

static function OnBeforeRequest(oSession: Session) {
        // oSession.oRequest.headers.Remove("Cookie");           
        // oSession.oRequest.headers.Add("Cookie", "username=admin;");  
        // oSession.oRequest["Referer"]=""; 
        // if (oSession.HTTPMethodIs("POST")){   //POST修改为GET
        //     oSession.RequestMethod="GET";
        // }   
        // var strBody=oSession.GetRequestBodyAsString();   
        // // // strBody=strBody.replace("111","222");   
        // strBody="11111111111111111111111111111111111"+strBody;  
        // // // strBody=strBody.ToUpper(); 
        // // // strBody=strBody.ToLower(); 
        // oSession.utilSetRequestBody(strBody);

As shown above, modify the code under the OnBeforeRequest function to automatically modify some of the parameters in the request packet before sending the request. Such as can be added to change the cookie, headers header parameters, you can modify the type of request package, the main role is to achieve a specific role in the penetration test, such as bypassing the firewall.

Common function

Http request function: that is, modify the contents of the function, you can send http request packet before modifying some parameters.

static function OnBeforeRequest(oSession: Session)

Http response function: that is, modify the contents of the function, you can receive http response packet before modifying some parameters

static function OnBeforeResponse(oSession: Session)

The method properties in the function

Filter an url

if ("") > -1) {}

Modify the display style in the session

oSession["ui-color"] = "orange";

Remove a field from the http header


Modify the contents of a field in the http header

oSession.oRequest["Referer"] = "";

Modify host = "";

Modify the Origin field

oSession.oRequest["Origin"] = "";

Delete all cookies


Create a new cookie

oSession.oRequest.headers.Add("Cookie", "username=ddos;");

Gets the body string in the Request

var strBody=oSession.GetRequestBodyAsString();

Use regular expressions or replace methods to modify string


Play a dialog box to check the modified body


Will modify the body, re-write back to the Request


Modify request url

For example: Replace the http protocol in the request URI with the https protocol.

oSession.fullUrl = "https" + oSession.fullUrl.Substring(oSession.fullUrl.IndexOf(':'));

Network speed limit

1000/download speed = time to be delayed (milliseconds), such as 20kB/s delay50 milliseconds to receive data.

if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded.
     oSession["request-trickle-delay"] = "300";
     // Delay receives by 150ms per KB downloaded.
     oSession["response-trickle-delay"] = "150";

Fiddler can customize a lot of features, these are usually some of the usual content, such as you want to know more usage please refer to the official documents: Fiddler document