搜索
查看: 4699|回复: 0

【渗透神器系列】Fiddler

[复制链接]

714

主题

354

回帖

2669

积分

管理员

本论坛第一帅

积分
2669

热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2018-9-6 10:16:36 | 显示全部楼层 |阅读模式 来自 甘肃陇南

本篇作为渗透神器系列第二篇,将介绍一款渗透界web测试开发界比较流行的一款web流量抓包分析工具,Fiddler。Fiddler的功能这里不多说,简单概括就是抓包、改包、重放。本篇的重点不是介绍Fiddler的基础用法,而是介绍如何通过编程打造属于自己的定制化Fiddler。本篇所记内容大部分来自互联网,如觉内容老套可自行绕道,全当个人查询之用,轻喷即可。

修改规则文件CustomRules.js
CustomRules.js是用Jscript.NET语言写的,语法类似C#。通过修改CustomRules.js可以修改http的请求和应答,不用中断程序,还可以针对不同的url做特殊的处理。

CustomRules.js文件位置
Fiddler工具菜单栏:

[pre]
rules->CustomRules

[/pre]
本地电脑磁盘存放地址:


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

[/pre]
常用内容
先分享一个常用的内容:

[pre]
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);
}

[/pre]
如上所示,修改OnBeforeRequest函数下的代码,可以起到在发送请求之前,自动修改请求包中的一些参数。如可以增删改cookie,headers头参数,可以修改请求包类型等,主要作用就是为了达到渗透测试时某种特殊的作用,比如绕过防火墙。

常用函数
http请求函数:即修改该函数内容,可以在发送http请求包之前修改某些参数。


[pre]
static function OnBeforeRequest(oSession: Session)

[/pre]
http应答函数:即修改该函数内容,可以在接收http应答包之前修改某些参数


[pre]
static function OnBeforeResponse(oSession: Session)

[/pre]
函数中的方法属性
筛选某个url

[pre]
if (oSession.host.indexOf("thief.one") > -1) {}
修改session中的显示样式

[/pre]
oSession["ui-color"] = "orange"; #即该记录显示的颜色
移除http头部中的某字段

[pre]
oSession.oRequest.headers.Remove("");
修改http头部中的某字段内容

oSession.oRequest["Referer"] = "http://thief.one";
修改host

oSession.host = "thief.one";
修改Origin字段

oSession.oRequest["Origin"] = "http://thief.one";
删除所有的cookie

oSession.oRequest.headers.Remove("Cookie");
新建cookie

oSession.oRequest.headers.Add("Cookie", "username=nMask;");
获取Request中的body字符串

var strBody=oSession.GetRequestBodyAsString();
用正则表达式或者replace方法去修改string

strBody=strBody.replace("thief","nmask");
弹个对话框检查下修改后的body

FiddlerObject.alert(strBody);
将修改后的body,重新写回Request中

oSession.utilSetRequestBody(strBody);
修改请求url
例如:将请求URI中http协议替换成https协议。


oSession.fullUrl = "https" + oSession.fullUrl.Substring(oSession.fullUrl.IndexOf(':'));
网络限速
1000/下载速度 = 需要delay的时间(毫秒),比如20kB/s 需要delay50毫秒来接收数据。

[/pre]


[pre]
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";
}

[/pre]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表