【Fiddler4.6.3】使用Fiddler Script 向指定页面中注入js或修改页面内容,本地文件/目录响应请求(三)
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2021-02-21 17:01:07
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
简易代理拦截功能
修改页面内容
有时候调试网页,或研究点东西(大家都懂的.......)的时候需要在第三方页面中注入点js或修改一些代码,来进行自己的测试,下面说下使用方法
首先设置浏览器或远程访问使用fiddler的代理然后打开fiddler选择右边的fiddlerscript选项卡,如果没有这个的话就从菜单打开
会提示下载安装后重启就有啦
选择如下图,在页面响应前
添加如下代码
static function OnBeforeResponse(oSession: Session) { if (m_Hide304s && oSession.responseCode == 304) { oSession["ui-hide"] = "true"; } if (oSession.HostnameIs("www.jd.com")||oSession.uriContains('jd.com') && oSession.oResponse.headers.ExistsAndContains("Content-Type","text/html")){ oSession.utilDecodeResponse(); oSession.utilReplaceInResponse('</head>','<script>alert(1);</script></head>'); } }
判断如果是京东或是请求url中包含jd.com的响应就在head前面添加一个js弹窗
正则替换
如果想替换更多的内容可以使用下面的正则方法来查找替换字符串
// 解码响应内容 oSession.utilDecodeResponse(); var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes); // 使用正则进行替换 var oRegEx=/<\/head>/ig; oBody = oBody.replace(oRegEx, "<script>alert(1);</script></head>"); //设置新的响应内容 oSession.utilSetResponseBody(oBody);
json格式替换
oSession.utilDecodeResponse(); var str=oSession.GetResponseBodyAsString(); //替换内容 str=str.Replace("msg","message"); // 转成json对象修改内容 var json=Fiddler.WebFormats.JSON.JsonDecode(str); json.JSONObject["code"]="200"; json.JSONObject["data"]["message"]="200"; oSession.utilSetResponseBody(Fiddler.WebFormats.JSON.JsonEncode(json.JSONObject));
最后注意修改后要点保存才会生效,点击如下图所示的保存,按ctrl+s键是无效的,
本地文件响应
直接判断如果请求是指定的文件就用本地的一个文件来响应
static function OnBeforeResponse(oSession: Session) { if (oSession.uriContains("header.js")) { oSession["x-replywithfile"] ="E:/mod.js"; } }
如果请求url中包含header.js就直接用本地mod.js文件来响应
本地目录响应
先添加一个函函数
static function AutoResponseFolder ( oSession: Session, domain:String, folder:String ) { // 获取当前对话的完整URL var fullUrl:String = oSession. fullUrl ; if ( fullUrl. StartsWith ( domain ) ) { var localPath:String = fullUrl. replace (domain, folder ) ; //set back color oSession [ 'ui-backcolor' ] = 'seashell' ; //set delay //oSession['response-trickle-delay'] = 2000; //replace server file oSession [ 'x-replywithfile' ] = localPath; //write log //FiddlerObject.log(localPath); } }
在响应之前使用本地目录响应内容
static function OnBeforeResponse(oSession: Session) { if (m_Hide304s && oSession.responseCode == 304) { oSession["ui-hide"] = "true"; } // if (oSession.uriContains("app.min.js")) { // oSession["x-replywithfile"] ="E:/mod.js"; // } //只要查到下面路径就进行本地目录替换 var domain:String='https://s29.9956.cn/static/study_h5/'; //本地目录 var folder:String='E:/GitServer/bxd/rest-study/Public/static/'; AutoResponseFolder(oSession,domain,folder); }