Fiddler自定义规则开发
Fiddler与Burp是安全比较常用的两款抓包软件,两者的异同、优缺点在此就不做赘述,本文主要介绍Fiddler规则(也可以叫插件)开发。
0x01 准备工作
- 安装Fiddler,配置代理环境
- 一定的语言开发经验,没有也可
0x02 开发目标
开发一个只显示指定主机数据包的规则(仅显示指定主机数据包有其他简单方式,这儿主要作为入门开发案例)。
0x03 简单了解
-
启动规则编辑器
点击菜单“规则->自定义规则”(快捷键Ctrl+R),打开规则编辑器。 图 3-1 自定义规则
-
查看已有规则
可以在规则脚本内,看到已经定义的规则,且已定义规则与菜单项目一一对应,如图: 图 3-2 已有规则列表
- 需要使用到的几个方法介绍
RulesOption:规则菜单下的子菜单项,是个重载的方法,可用于定义一级、二级菜单
OnBeforeRequest:在请求发起前,对请求进行拦截处理
OnBeforeResponse:在请求响应前,对响应进行拦截处理
OnExecAction:界面相关功能定制,本次不涉及
0x04 开发方式
有两种方式可选:
a. 复制现有规则,进行更改
b. 使用Fiddler ScriptEditor插入代码(微软家的,界面拖拖拖)
0x05 具体步骤
a. 首先在代码中找到性能与重置脚本中间位置,插入如下代码
// 自定义规则开发,显示抓取的指定host下的请求
public static RulesOption("仅显示指定Host流量")
var m_TargetHost: boolean = false;
图 3-3 插入后如图
b. 更改OnBeforeResponse函数的处理逻辑,插入如下代码
// 指定host显示代码
if (m_TargetHost && (oSession.host != "www.jianshu.com")){
oSession["ui-hide"]="true";
}
图 3-4 指定Host代码
c. 规则验证
以上已完成了简单的指定Host抓取的代码,下面进行比较
图 3-5 规则未打开
图 3-6 规则已打开
验证通过,基础的规则已经开发完毕啦
d. 主域拦截,拦截更多二级域名流量
// 指定host显示代码
if (m_TargetHost && (!oSession.host.EndsWith("baidu.com"))){
oSession["ui-hide"]="true";
}
图 3-7 获取更多二级域名流量
e. 更改为自定义域名进行拦截
// 自定义规则开发,显示抓取的指定host下的请求
RulesString("流量筛选规则", true)
RulesStringValue(1,"筛选指定Host...", "%CUSTOM%")
public static var m_TargetHost: String = null;
static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
// 指定host显示代码
if (m_TargetHost && (!oSession.host.EndsWith(m_TargetHost))){
oSession["ui-hide"]="true";
}
}
图 3-8 自定义域名
图 3-9 自定义域名
0x06 总结
以上就完成了一个简单的规则入门开发,通过规则定制能更好的提升我们的效率。而Fiddler的规则强大之处远不止于此,更多介绍请等待后续
网友评论