人世起起落落 左手邊上演的華燈初上 右手邊是繁華落幕的星點餘光
本篇做爲滲透神器系列第二篇,將介紹一款滲透界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文檔工具
傳送門
參考:http://www.open-open.com/lib/view/open1429059806736.html
轉載請說明出處:【滲透神器系列】Fiddler|nMask’Blog
本文地址:http://thief.one/2017/04/27/1