【滲透神器系列】Fiddler (收藏)

人世起起落落 左手邊上演的華燈初上 右手邊是繁華落幕的星點餘光

  本篇做爲滲透神器系列第二篇,將介紹一款滲透界web測試開發界比較流行的一款web流量抓包分析工具,Fiddler。Fiddler的功能這裏很少說,簡單歸納就是抓包、改包、重放。本篇的重點不是介紹Fiddler的基礎用法,而是介紹如何經過編程打造屬於本身的定製化Fiddler。本篇所記內容大部分來自互聯網,如覺內容老套可自行繞道,全當我的查詢之用,輕噴便可。

修改規則文件CustomRules.js

CustomRules.js是用Jscript.NET語言寫的,語法相似C#。經過修改CustomRules.js能夠修改http的請求和應答,不用中斷程序,還能夠針對不一樣的url作特殊的處理。html

CustomRules.js文件位置

Fiddler工具菜單欄:web

1
rules->CustomRules

本地電腦磁盤存放地址:正則表達式

1
C:\Documents and Settings\[your user]\MyDocuments\Fiddler2\Scripts\CustomRules.js

經常使用內容

先分享一個經常使用的內容:編程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
static function OnBeforeRequest(oSession: Session) {
// oSession.oRequest.headers.Remove( "Cookie"); //移除請求包的cookies
// oSession.oRequest.headers.Add( "Cookie", "username=admin;"); //新建cookies
// oSession.oRequest[ "Referer"]="http://www.baidu.com"; //設置referer爲baidu
// if (oSession.HTTPMethodIs("POST")){ //POST修改成GET
// oSession.RequestMethod= "GET";
// }
// var strBody=oSession.GetRequestBodyAsString(); //獲取請求包中的body內容,修改其內容。
// // // strBody=strBody.replace( "111","222"); //替換字符串
// strBody= "11111111111111111111111111111111111"+strBody; //在發送的數據包前面加上垃圾數據
// // // strBody=strBody.ToUpper(); //所有轉化爲大寫
// // // strBody=strBody.ToLower(); //所有轉化爲小寫
// oSession.utilSetRequestBody(strBody);
}

如上所示,修改OnBeforeRequest函數下的代碼,能夠起到在發送請求以前,自動修改請求包中的一些參數。如能夠增刪改cookie,headers頭參數,能夠修改請求包類型等,主要做用就是爲了達到滲透測試時某種特殊的做用,好比繞過防火牆。安全

經常使用函數

http請求函數:即修改該函數內容,能夠在發送http請求包以前修改某些參數。cookie

1
static function OnBeforeRequest(oSession: Session)

http應答函數:即修改該函數內容,能夠在接收http應答包以前修改某些參數網絡

1
static function OnBeforeResponse(oSession: Session)

函數中的方法屬性

篩選某個url
1
if (oSession.host.indexOf("thief.one") > -1) {}
修改session中的顯示樣式
1
oSession[ "ui-color"] = "orange"; #即該記錄顯示的顏色
移除http頭部中的某字段
1
oSession.oRequest.headers.Remove( "");
修改http頭部中的某字段內容
1
oSession.oRequest[ "Referer"] = "http://thief.one";
修改host
1
oSession.host = "thief.one";
修改Origin字段
1
oSession.oRequest[ "Origin"] = "http://thief.one";
刪除全部的cookie
1
oSession.oRequest.headers.Remove( "Cookie");
新建cookie
1
oSession.oRequest.headers.Add( "Cookie", "username=nMask;");
獲取Request中的body字符串
1
var strBody=oSession.GetRequestBodyAsString();
用正則表達式或者replace方法去修改string
1
strBody=strBody.replace( "thief","nmask");
彈個對話框檢查下修改後的body
1
FiddlerObject.alert(strBody);
將修改後的body,從新寫回Request中
1
oSession.utilSetRequestBody(strBody);
修改請求url

例如:將請求URI中http協議替換成https協議。session

1
oSession.fullUrl = "https" + oSession.fullUrl.Substring(oSession.fullUrl.IndexOf(':'));
網絡限速

1000/下載速度 = 須要delay的時間(毫秒),好比20kB/s 須要delay50毫秒來接收數據。函數

1
2
3
4
5
6
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能夠定製化不少功能,以上是我平時經常使用的一些內容,如想要了解更多用法請參考官方文檔:Fiddler文檔工具

傳送門

【滲透神器系列】nc

參考:http://www.open-open.com/lib/view/open1429059806736.html

轉載請說明出處:【滲透神器系列】Fiddler|nMask’Blog
本文地址:http://thief.one/2017/04/27/1

相關文章
相關標籤/搜索