From 7890450b0c9d0cd95a2e5f507a9a8247702051be Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Fri, 12 Jun 2015 16:00:16 +1200 Subject: Handle invalid IDNA encoding in hostnames Fixes #622 --- libmproxy/protocol/http.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'libmproxy/protocol') diff --git a/libmproxy/protocol/http.py b/libmproxy/protocol/http.py index 91e74567..9c143386 100644 --- a/libmproxy/protocol/http.py +++ b/libmproxy/protocol/http.py @@ -584,11 +584,10 @@ class HTTPRequest(HTTPMessage): of the request, e.g. if an upstream proxy is in place If hostheader is set to True, the Host: header will be used as - additional (and preferred) data source. This is handy in transparent - mode, where only the ip of the destination is known, but not the - resolved name. This is disabled by default, as an attacker may spoof - the host header to confuse an analyst. - + additional (and preferred) data source. This is handy in + transparent mode, where only the IO of the destination is known, + but not the resolved name. This is disabled by default, as an + attacker may spoof the host header to confuse an analyst. """ host = None if hostheader: @@ -596,7 +595,10 @@ class HTTPRequest(HTTPMessage): if not host: host = self.host if host: - return host.encode("idna") + try: + return host.encode("idna") + except ValueError: + return host else: return None -- cgit v1.2.3