Fiddler二次转发实现动态改包

1.先打开filddler,按照图示找到filddlerscript

2.打开之后你会看到很多代码,找到这个函数,该函数可以拿到响应结果,我们编写代码也是在这里面编写过滤

3.参考以下代码

 static function OnBeforeResponse(oSession: Session) {
        
        if(oSession.fullUrl.IndexOf("/luther/user/status/update")!=-1){
            oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况
            var responses = oSession.GetResponseBodyAsString();
            var Content: byte[] = System.Text.Encoding.UTF8.GetBytes(responses);
            var oRQH: HTTPRequestHeaders = new HTTPRequestHeaders("/", ['Host: 127.0.0.1:5000','Content-Length: '+Content.length.ToString(), 'Content-Type: application/json']);
            oRQH.HTTPMethod = "POST";
            var oSD = new System.Collections.Specialized.StringDictionary();
            var newSession = FiddlerApplication.oProxy.SendRequestAndWait(oRQH, Content, oSD, null);     	
            var second_res = newSession.GetResponseBodyAsString();			
            FiddlerApplication.Log.LogString(second_res);
            oSession.utilSetResponseBody(second_res);    

        }
        
        
        if (m_Hide304s && oSession.responseCode == 304) {
            oSession["ui-hide"] = "true";
        }
    }

4.开启python服务端,接收数据

from flask import *
import json

# 新建flask服务并且将socket初始化
app = Flask(__name__)

# 由于前端请求会出现跨域,因此我们允许所有域访问
from flask_cors import *
CORS(app, supports_credentials=True)


@app.route("/",methods=["POST"])
def index():
    # 如果请求数据不是json则结束
    if not request.is_json:
        return json.dumps({"code":"400","msg":"DATA_NOT_JSON","success":False})
    # 如果是则保存
    print(request.json)
    return json.dumps({"a":"1"})


if __name__=="__main__":
    app.run(debug=True)

猜你喜欢

转载自blog.csdn.net/weixin_55109596/article/details/134042910