Su. 发表于 2024-10-22 21:39:18

记一次fiddler替换js

本帖最后由 Su. 于 2024-10-23 13:50 编辑

> 本帖最后由 Su. 于 2024-10-22 21:45 编辑

好久之前立的flag,要搞一下wechat 内置浏览器。
配合道哥之前发的调试手机端页面使用。(首先要能看到开发者工具,方便调试)
由于自身水平有限,加上排版太特么难看,先贴上我参考的教程
主要:[主要1](https://www.cnblogs.com/RockLi/p/3511132.html) [主要2](https://blog.csdn.net/aab438346/article/details/102440410)
我没用到,但是可能会对哥哥们有帮助:(https://blog.csdn.net/m0_63892927/article/details/140322947?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522E4511553-D907-4119-AD26-F0AA035D1B2C%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=E4511553-D907-4119-AD26-F0AA035D1B2C&biz_id=0&spm=1018.2226.3001.4187) (https://blog.csdn.net/yzTestGroup/article/details/125503696?spm=1001.2101.3001.6661.1&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7EPaidSort-1-125503696-blog-140322947.235%5Ev43%5Epc_blog_bottom_relevance_base1&utm_relevant_index=1) (https://blog.csdn.net/qq_41714308/article/details/90411242)

## 介绍
首先,打开fiddler,按照网上的教程配置一下,像什么什么https证书什么的,那种一搜就有,!(data/attachment/forum/202410/22/210454z40r0azy90aee3l0.png)顶部一行模块里这个decode,可以点一下,到时候每个请求就会自动解码,不用每次再点击解码。
右侧有几个板块,用到的其实不多,就一个Inspectors!(data/attachment/forum/202410/22/210700q1aa1wyriddglzdf.png)还有一个AutoResponder!(data/attachment/forum/202410/22/210708xrrnmnz55mts9nrr.png)。
inspectors相当于开发者工具里的网络模块中的详情,只不过更加细分,上半部分是请求,下半部分是响应。不过没有启动器,毕竟不是浏览器内置的。
autoresponder就是主要工具了,用他来设置规则,拦截并修改请求。
## 主要内容
!(data/attachment/forum/202410/22/211046slbzsd6so9c9z1ox.png)
第一个红框是开关,开启之后就可以自定义规则,第二个红框勾选可以让规则外的直接通过(不拦截的意思),不开启会导致规则匹配不到的全部出错,像这样!(data/attachment/forum/202410/22/211241lnh8dnddnedyelld.png)
可以从左侧的请求栏中直接选中想要修改的请求拖过来,也可以先选中再点击Add Rule。不管哪种方式,他生成的都是EXACT:\*\*\*\*\*,可以用正则,regex大小写都行,如:regex:https:\/\/www.baidu.com\/
直接拖过来还会在第二个下拉菜单自动生成一个\*200-SESSION\_xxxx的东西,然后可以右键点击规则,generate file,会自动在桌面生成一个文件,这个文件就是原封不动的请求文件,可以将其修改成你的形状。记得点Rule Editor 里靠右边的Save!(data/attachment/forum/202410/22/212123z8e8j8fmfcfzg8z3.png)
## 基本就这么多,下面再来点其他的。
因为我想要修改的是js,所以,思路有两种,一种是修改html,在script里添加脚本地址(只是想法,没有实践)
另一种是直接替换一个网页原生的js文件,只要这个js文件里面不是(function(){})()这种形式,那么在下面添加上自己的函数即可。
又因为我要搞得这个网站会缓存,只有第一次加载的时候会请求js,其余时候只会请求html,所以我用的第二种方法
过程中遇到个小坑,替换的js文件必须要有响应头,date可以删去,但是content-length必须有,而且必须对。(好像可以大于,但是不能小于)
### 其他方法
网上找到的教程提到,还有另外两种方法,实现拦截请求。
一种是在左下角,有个特别不起眼的黑框,可以输入命令bpu *****
!(data/attachment/forum/202410/22/213103wf38q831ru1933uc.png)
第二种是在右侧,有个filters板块,可以过滤请求。不过看教程说这个局限性很大,会对所有请求进行拦截。
!(data/attachment/forum/202410/22/213317ndduq2rbwowmd2ux.png)
## 结尾
太特么难看了,又编辑了一下,头回写这种,哥哥们凑活着看

李恒道 发表于 2024-10-22 21:54:14

fiddler的类js语法是真他妈的难用

Su. 发表于 2024-10-22 21:54:26

有个事忘了提,我一开始只是简单地用通配符匹配,但是由于他的请求是带着参数的
https://example.com/config.js?v=20241022,我的匹配是regex:https:\/\/example.com\/config.js\?v=*
结果我替换的文件命名就需要是 替换文件.js20241022
然后修改正则表达式为:regex:https:\/\/example.com\/config.js\?v=\d{8} 就可以直接 替换文件.js 了,不需要再20241022。
不知道是我操作问题还是怎么,哥哥们可以验证一下看看。

李恒道 发表于 2024-10-22 21:54:40

图片好像炸了好多

Su. 发表于 2024-10-22 21:55:55

李恒道 发表于 2024-10-22 21:54
图片好像炸了好多

不是吧,我这都是正常的,可能,是因为我一边开着fiddler一边写导致的,过程中还拿油中网做了做实验,hhh

Su. 发表于 2024-10-22 21:59:28

李恒道 发表于 2024-10-22 21:54
fiddler的类js语法是真他妈的难用

哥哥说的是customer rules吗?我没用那个,直接拦截请求替换网页js的,我懒得弄fiddler的那个,嫌麻烦

李恒道 发表于 2024-10-22 22:08:22

Su. 发表于 2024-10-22 21:55
不是吧,我这都是正常的,可能,是因为我一边开着fiddler一边写导致的,过程中还拿油中网做了做实验,hhh ...

是我网卡了

chitanda 发表于 2024-10-23 20:01:33

如果只是简单的替换整个js的话,fiddler可以直接把线上js的请求指向一个本地文件的

Su. 发表于 2024-10-23 20:43:15

chitanda 发表于 2024-10-23 20:01
如果只是简单的替换整个js的话,fiddler可以直接把线上js的请求指向一个本地文件的 ...

对,我就是这么干的
页: [1]
查看完整版本: 记一次fiddler替换js