From 0ff19672266c954bc5e558412398f4dadb156dc8 Mon Sep 17 00:00:00 2001 From: Doug Freed Date: Wed, 16 Nov 2016 13:50:36 +0000 Subject: [PATCH] proxy/protocol/base: Allow spoofing fixed source Allow combining --spoof-source-address and --upstream-bind-address to spoof a fixed source address. Also update the help text for --spoof-source-address to indicate this new possibility. --- mitmproxy/proxy/protocol/base.py | 6 ++++-- mitmproxy/tools/cmdline.py | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mitmproxy/proxy/protocol/base.py b/mitmproxy/proxy/protocol/base.py index 783d1cc8d..c535a1a38 100644 --- a/mitmproxy/proxy/protocol/base.py +++ b/mitmproxy/proxy/protocol/base.py @@ -109,12 +109,14 @@ class ServerConnectionMixin: super().__init__() self.server_conn = None - if self.config.options.spoof_source_address: + if self.config.options.spoof_source_address and self.config.options.upstream_bind_address == '': self.server_conn = connections.ServerConnection( server_address, (self.ctx.client_conn.address.host, 0), True) else: self.server_conn = connections.ServerConnection( - server_address, (self.config.options.upstream_bind_address, 0)) + server_address, (self.config.options.upstream_bind_address, 0), + self.config.options.spoof_source_address + ) self.__check_self_connect() diff --git a/mitmproxy/tools/cmdline.py b/mitmproxy/tools/cmdline.py index 4be107a8e..34f1c08f7 100644 --- a/mitmproxy/tools/cmdline.py +++ b/mitmproxy/tools/cmdline.py @@ -485,7 +485,8 @@ def proxy_options(parser): group.add_argument( "--spoof-source-address", action="store_true", dest="spoof_source_address", - help="Use the client's IP for server-side connections" + help="Use the client's IP for server-side connections. " + "Combine with --upstream-bind-address to spoof a fixed source address." ) group.add_argument( "--upstream-bind-address",