def test_fuzz(self, data): f = io.BytesIO(data) reader = FlowReader(f) try: for _ in reader.stream(): pass except exceptions.FlowReadException: pass # should never raise anything else.
def load_flows(self, fr: io.FlowReader) -> int: """ Load flows from a FlowReader object. """ cnt = 0 for i in fr.stream(): cnt += 1 self.load_flow(i) return cnt
def load_saved_flow(self, flow_path, third_party=False, set_self=True): flow = [] with open(flow_path, 'rb') as flowfile: freader = FlowReader(flowfile) for msg in freader.stream(): if third_party: pass elif '.uber.' not in msg.request.host: continue flow.append(msg) if set_self: self.orig_flow = flow else: return flow
from mitmproxy.io import FlowReader from Request_Constraint import Request_Constraints #Source: https://avilpage.com/2018/08/parsing-and-transforming-mitmproxy-request-flows.html filename = 'dump.txt' request_obj_list = [] with open(filename, 'rb') as fp: reader = FlowReader(fp) #param_length_per_visit = {} #max_param = 0 #param_chars = {} for flow in reader.stream(): request = flow.request url = request.url.split("?")[0] #Check if an Request_Constraints obj exists already for the url exists = False request_obj = None idx = -1 for i in range(len(request_obj_list)): tmp = request_obj_list[i].url if (request_obj_list[i].url == url): exists = True idx = i request_obj = request_obj_list[i] if (not exists): request_obj = Request_Constraints(url) #check GET # of params if (request.method == "GET"):