龙空技术网

fiddler筛选请求并修改参数

局外人LZ 139

前言:

眼前你们对“java ajax请求特殊字符过滤”都比较看重,姐妹们都想要学习一些“java ajax请求特殊字符过滤”的相关知识。那么小编也在网上汇集了一些有关“java ajax请求特殊字符过滤””的相关知识,希望我们能喜欢,姐妹们快快来了解一下吧!

一、筛选请求

使用过滤,需勾选User Filter才会生效,运行当前的过滤规则,需点击Run Filterset nowHosts:主机过滤之局域网过滤No Zone Filter:默认选项,不设置区域过滤器show only Intranet Hosts:只显示内网的Hosts,即过滤掉外网的Hosts。此时,只显示URL请求目标服务器在内网的请求show only internet Hosts:与上相对应,只显示外网的HostsHosts:主机过滤之广域网过滤No Host Filter:默认选项,不设置过滤主机IP条件Hide the following Hosts:隐藏输入到下面文本框中的HostsShow only the following Hosts:仅显示输入到下面文本框中的HostsFlag the following Hosts:标识下边输入的主机名的会话(加粗)Client process:客户端进程过滤Show only traffic from:指定只显示哪个Windows进程中的请求,右侧会列出当前所有的 Windows 进程。Show only Internet Explorer traffic:只显示IE发出的请求。Hide trafficfrom service host:隐藏来自serviceRequest header:请求头过滤Show only if URL contains:仅显示URL中包含指定字符串的请求,字符串可以是URL中的一部分,多个字符串用空格分开,也可以使用EXACT:前缀来限定大小写,或者使用REGEX:前缀正则表达式或完整的URL。Hide if URL contains:仅隐藏URL中包含指定字符串的请求,字符串可以是URL中的一部分,多个用空格分开,可以是正则或完整的URL。Flag requests with headers:标记带有特定header的请求,如果在websession列表中存在该请求,会加粗显示。Delete request headers:删除请求中指定的Header字段Set request Header:在URL请求中添加头字段,与上一条对应。前面输入字段,后面输入值。Breakpionts:设置断点Break request on Post:对所有Post请求设置断点Break request on GET with query string:对所有带参数的 GET 请求设置断点Break on XMLHttpRequest:对所有Ajax请求设置断点Break response on Content-type:对响应报文中header字段中,Content-Type属性匹配成功的请求设置断点Response Status Code:响应状态码过滤Hide success(2xx):隐藏响应状态码为2xx的URL请求Hide non-2xx:隐藏响应状态码不是2xx的URL请求Hide Authentication demands(401,407):隐藏认证(响应状态码为:401 407)的URL请求Hide redirects(300,301,302,303,307):隐藏重定向(响应状态码为:300,301,302,303,07)的URL请求Hide Not Modifield(304):隐藏不是缓存的状态码(304)的URL请求Response Type and Size :响应类型和报文大小过滤下拉类别选择显示类型

Show all Content-Type:显示所有类型Content-Type的请求,Content-Type即为响应结果header信息中Content-Type字段Show only IMAGE/*:仅显示响应类型为图片的请求Show only HTML:仅显示响应类型为HTML的请求Show only TEXT/CSS:仅显示响应类型为text/css的请求Show only SCRIPTS:仅显示响应类型为Scripts的请求Show only XML:仅显示响应类型为XML的请求Show only JSON:仅显示响应类型为Json的请求Hide IMAGE/*:隐藏所有响应类型为图片的请求
Hide smaller than:隐藏小于指定大小响应结果的请求。Hide larger than:隐藏大于指定大小响应结果的请求。Time HeatMap:时间热图。Block script files:阻止返回正常JS文件,如果响应是脚本文件,那么响应 404。Block image files:阻止返回正常图片文件,如果响应是图片文件,那么响应 404。Block SWF files:阻止返回正常SWF文件,如果响应是SWF 文件,那么响应 404。Block CSS files:阻止返回正常CSS文件,如果响应是 CSS 文件,那么响应 404。Response Header:响应头过滤Flag responses that set cookies:会话列表的响应中有cookies信息的加上标识(斜体)。Flag responses with headers:会话列表里标记响应中带有特定header的请求(即加粗)。Delete response headers:会话列表里删除响应信息中,有指定的Header字段的会话。Set response header:在响应中添加header字段,第一个输入框是header 的key,第二个输入框是对应value

二、修改请求参数之临时修改参数

临时修改参数,可通过urlreplace SeekStr ReplaceWithStr命令,做参数替换打开Fiddler,再打开百度,搜索csdn,在Fiddler中查看参数,wd是查询参数Fiddler命令行输入urlreplace wd=csdn wd=js回车,回到浏览器点击百度一下,会发现虽然搜索的是csdn,但是查出来的是js相关的信息,这种方法关闭Fiddler之后就会失效

三、断点修改请求参数

在请球之前拦截请求,以刚才的csdn为例点击百度一下,会发现已经进入Fiddler断点点击请求,点击Inspectors>WebForms,修改参数中的wd为js,点击Run to Complation,会发现虽然搜索的是csdn,但是查出来的是js相关的信息这种方法修改参数,如果遇到请求参数中有时间戳的很容易造成请求失败,而且断点会断住所有请求,如果想断某个请求,最好还是做个请求筛选

四、通过Composer修改参数

先通过浏览器百度csdn,Fiddler中查看Inspectors>WebView会看到搜索出来的是csdn,如果是乱码点击Decode解码一下鼠标左键把请求拖到Composer,在Url中找到wd,修改为js,点击执行,查看Inspectors>WebView会看到搜索出来的是js这种方法修改参数,如果遇到请求参数中有时间戳的很容易造成请求失败,而且不会在浏览器上体现出来,相当于postman创建了一个请求,好处就是会有历史记录下次使用可以直接在历史记录里找

五、修改请求参数之永久修改参数,FiddlerScript修改参数

找到FiddlerScript编辑脚本,也可以在工具栏Rules > Customize Rules中修改脚本找到static function OnBeforeRequest,添加oSession.uriContains("web=csdn")代码,点击save script保存脚本打开浏览器搜索csdn,会发现虽然搜索的是csdn,但是查出来的是js相关的信息,这种方法关闭浏览器不会失效、也不用打断点,缺点是需要熟悉.Net,不过需要什么代码,度娘应该会给你答案

六、修改请求脚本代码

拦截post请求,并修改JSON格式参数

if (oSession.HTTPMethodIs("POST") && oSession.uriContains("example.com")) {    // 获取请求的 Body 数据    var requestBody = oSession.GetRequestBodyAsString();    // 解析 JSON    var json = Fiddler.WebFormats.JSON.JsonDecode(requestBody);    // 修改 JSON 参数    json.JSONObject["Body"]["kwy"] = "value";    // 删除 JSON 参数    json.JSONObject.Remove('key');    json.JSONObject["Body"].Remove("key");        // 将修改后的 JSON 转换回字符串    var modifiedRequestBody = Fiddler.WebFormats.JSON.JsonEncode(json.JSONObject);    // 更新请求的 Body 数据    oSession.utilSetRequestBody(modifiedRequestBody);}
拦截post请求,并修改普通参数,非JSON格式
if (oSession.HTTPMethodIs("POST") && oSession.uriContains("example.com")) {    // 获取请求的 Body 数据    var requestBody = oSession.GetRequestBodyAsString();    // 修改参数    requestBody = requestBody.replace("param1=value1", "param1=newValue");    // 更新请求的 Body 数据    oSession.utilSetRequestBody(requestBody);}
拦截get请求,并修改url参数,如果post请求url中带有参数,可以把GET换成POST
if (oSession.HTTPMethodIs("GET") && oSession.uriContains("example.com")) {    // 获取请求的 URL    var url = oSession.fullUrl;    // 修改参数    url = url.replace("param1=value1", "param1=newvalue");    // 更新请求的 URL    oSession.fullUrl = url;}
拦截get请求,并删除url参数,如果post请求url中带有参数,可以把GET换成POST
import System.Web;if (oSession.HTTPMethodIs("GET") & & oSession.uriContains("example.com")) {    // 获取请求的 URL    var url = oSession.fullUrl;        // 解析 URL 中的参数    var uri = new System.Uri(url);    var queryString = System.Web.HttpUtility.ParseQueryString(uri.Query);        // 删除指定的参数    queryString.Remove("dt");        // 构建新的 URL    var newUrl = uri.GetLeftPart(System.UriPartial.Path) + "?" + queryString.ToString();        // 更新请求的 URL    oSession.fullUrl = newUrl;}
拦截get请求,并修改请求头,如果需要修改POST请求头,可以把GET换成POST
if (oSession.HTTPMethodIs("GET") && oSession.uriContains("example.com")) {    // 获取请求的头部对象    var headers = oSession.oRequest.headers;    // 修改头部的值    headers["key"] = "value";    // 删除指定的头部    headers.Remove("key");}
拦截get请求,并修改cookie,如果需要修改POST请求cookie,可以把GET换成POST
if (oSession.HTTPMethodIs("GET") && oSession.uriContains("example.com")) {    // 获取请求的 Cookie 值    var cookieValue = oSession.oRequest["Cookie"];        // 添加cookie    cookieValue+=";key=value";        // 修改cookie    cookieValue = cookieValue.Replace("key=value", "key=newValue");        // 删除cookie    cookieValue = cookieValue.Replace("key=value", "");    oSession.oRequest["Cookie"] = cookieValue}
正则替换字符串,以修改cookie为例
if (oSession.HTTPMethodIs("GET") && oSession.uriContains("example.com")) {    // 获取请求的 Cookie 值    var cookieValue = oSession.oRequest["Cookie"];        var pattern = "key=([^&]*)";    var regex = new System.Text.RegularExpressions.Regex(pattern);    var cookieValue = regex.Replace(cookieValue, "key=newValue");    oSession.oRequest["Cookie"] = cookieValue}
输出cookie到控制台,可通过log查看
FiddlerApplication.Log.LogString("cookie: " + cookieValue);

标签: #java ajax请求特殊字符过滤