Ejemplo n.º 1
0
def test_assemble_response():
    assert assemble_response(tresp()) == (
        b"HTTP/1.1 200 OK\r\n"
        b"header-response: svalue\r\n"
        b"content-length: 7\r\n"
        b"\r\n"
        b"message"
    )

    resp = tresp()
    resp.headers["transfer-encoding"] = "chunked"
    resp.headers["trailer"] = "my-little-trailer"
    resp.trailers = Headers([(b"my-little-trailer", b"foobar")])
    assert assemble_response(resp) == (
        b"HTTP/1.1 200 OK\r\n"
        b"header-response: svalue\r\n"
        b"content-length: 7\r\n"
        b"transfer-encoding: chunked\r\n"
        b"trailer: my-little-trailer\r\n"
        b"\r\n7\r\n"
        b"message"
        b"\r\n0\r\n"
        b"my-little-trailer: foobar\r\n\r\n"
    )

    with pytest.raises(exceptions.HttpException):
        assemble_response(tresp(content=None))
Ejemplo n.º 2
0
def test_assemble_response():
    assert assemble_response(tresp()) == (b"HTTP/1.1 200 OK\r\n"
                                          b"header-response: svalue\r\n"
                                          b"content-length: 7\r\n"
                                          b"\r\n"
                                          b"message")

    with pytest.raises(exceptions.HttpException):
        assemble_response(tresp(content=None))
Ejemplo n.º 3
0
def test_assemble_response():
    assert assemble_response(tresp()) == (
        b"HTTP/1.1 200 OK\r\n"
        b"header-response: svalue\r\n"
        b"content-length: 7\r\n"
        b"\r\n"
        b"message"
    )

    with raises(exceptions.HttpException):
        assemble_response(tresp(content=None))
Ejemplo n.º 4
0
 def res(self, flow: flow.Flow) -> None:
     mixto_entry_id = self.get_entry_id()
     self.mitm_method = flow.request.method
     self.mitm_host = flow.request.host
     self.mixto.AddCommit(
         data=self._get_data(
             assemble.assemble_response(flow.response).decode(
                 "utf-8", errors="backslashreplace"),
             flow,
         ),
         entry_id=mixto_entry_id,
         title=self._get_title("response"),
     )
     print("Sent!")
Ejemplo n.º 5
0
 def response(self, flow: mitmproxy.http.HTTPFlow):
     if not hasattr(self, "client"):
         self.client = client.NeatClient(ctx.options.neat_url,
                                         ctx.options.neat_username,
                                         ctx.options.neat_password)
     data = client.CreateRaw.request_class(
         raw_request=base64.b64encode(
             assemble.assemble_request(flow.request)).decode('ascii'),
         raw_response=base64.b64encode(
             assemble.assemble_response(flow.response)).decode('ascii'),
         scheme=flow.request.scheme,
         host=flow.request.host,
         port=flow.request.port,
     )
     self.client.create_raw(data)
Ejemplo n.º 6
0
 def full(self, flow: flow.Flow) -> None:
     mixto_entry_id = self.get_entry_id()
     self.mitm_method = flow.request.method
     self.mitm_host = flow.request.host
     reqdata = assemble.assemble_request(flow.request).decode(
         "utf-8", errors="backslashreplace")
     resdata = assemble.assemble_response(flow.response).decode(
         "utf-8", errors="backslashreplace")
     data = "\n\n\n".join([reqdata, resdata])
     self.mixto.AddCommit(
         data=self._get_data(data, flow),
         entry_id=mixto_entry_id,
         title=self._get_title("request.response"),
     )
     print("Sent!")
Ejemplo n.º 7
0
def raw_response(f: flow.Flow) -> bytes:
    response = cleanup_response(f)
    if response.raw_content is None:
        raise exceptions.CommandError("Response content missing.")
    return assemble.assemble_response(response)
Ejemplo n.º 8
0
 def response(self, flow: http.HTTPFlow) -> None:
     if flow.response:
         self.send_payload(flow, PayloadType.HTTP_REPLY,
                           assemble_response(flow.response))
Ejemplo n.º 9
0
def raw_response(f: flow.Flow) -> bytes:
    return assemble.assemble_response(cleanup_response(f))
Ejemplo n.º 10
0
def response(flow):
    ctx.log.info(assemble_request(flow.request).decode("utf-8"))
    flow.response.decode()
    ctx.log.info(assemble_response(flow.response).decode("utf-8"))