嗅探大师拦截器使用教程
嗅探大师可以通过拦截器功能对网络请求和网络应答进行拦截修改,包括请求的全部内容,例如请求地址,请求头,请求体。通过编写js,可以对请求进行复制的修改替换和规则设置。
打开拦截器日志
在代理抓包界面的右侧,有个拦截器图标,类似于插头的形状。双击拦截器图标打开拦截器日志界面,里面可以查看到开关。如果开启了拦截器,这还可以看到拦截日志。
打开拦截器编辑
在拦截器日志界面点击编辑拦截器,可以打开拦截器编辑功能
编辑拦截器代码
拦截器里面有一段默认的代码,是演示拦截器的整体框架的例子,需要根据自己的需要进行修改。
拦截器代码用js编写,三个函数的名称不能修改,参数不能修改,只能修改函数内部的逻辑。
- handleRequest 请求拦截,对请求进行修改的逻辑的逻辑写在这个函数内
- handleResponse 响应拦截,对响应的数据进行修改的逻辑写这个函数内
- filterUrl 拦截地址规则,需要拦截的地址放此,地址支持通配符
拦截器至少包含下面这个代码,这个是一个空的拦截器,什么都不拦截,什么都不做。
1
2function handleRequest(request) {
3 return request
4}
5
6function handleResponse(response) {
7 return response
8}
9
10function filterUrl() {
11 return []
12}
一个简单的拦截器如下,实现的功能是拦截google的请求,发送和接收数据的时候打印个日志
1
2function handleRequest(request) {
3 console.log("准备发送请求"+request.URL);
4 return request
5}
6
7function handleResponse(response) {
8 console.log("收到请求"+response.URL);
9 return response
10}
11
12function filterUrl() {
13 return ["https://www.google.com/*"]
14}
拦截器之request对象
拦截器的request对象包含即将发往服务器的请求的全部数据,可以通过修改这个数据来修改发送给服务器的数据。request包含的属性
- URL 请求的url,如果要修改重定向到其他地址,直接修改这个值即可
- Header 请求的头信息,是一个键值对对象
- Body 即将发往服务器的请求体数据
- IsBase64Body 标记Body是否是经过base64编码发送到拦截器的。如果发往服务器的数据是二进制,则嗅探大师会编码为base64字符串赋值给Body再传递给handleRequest,IsBase64Body 会被设置为true,如果是普通的文本,request.Body的值则是原本的字符串,不会经过base64,IsBase64Body 会被设置为false。如果您要修改base后的body,则需要保持Body数据格式和IsBase64Body的正确匹配。
拦截器之response
拦截器response包含服务器返回的全部信息,可以通过修改这个来达到修改传递给最终目标程序的数据的目的。response包含的属性和类型和request基本一致,只多了一个StatusCode字段
- StatusCode 响应的状态码
- URL 请求的url,如果要修改重定向到其他地址,直接修改这个值即可
- Header 响应的头信息,是一个键值对对象
- Body 服务器返回的,即将发往软件的数据
- IsBase64Body 标记Body是否是经过base64编码发送到拦截器的。如果返回的数据是二进制,则嗅探大师会编码为base64字符串赋值给Body再传递给handleResponse,IsBase64Body 会被设置为true,如果是普通的文本,response.Body的值则是原本的字符串,不会经过base64,IsBase64Body 会被设置为false。如果您要修改base后的body,则需要保持Body数据格式和IsBase64Body的正确匹配。