From 3261288c82fee415dd8e1ba64b80596ef97da490 Mon Sep 17 00:00:00 2001 From: byt3bl33d3r Date: Mon, 3 Aug 2015 01:53:59 +0200 Subject: [PATCH 1/3] Fixes MDNS Name parsing error --- poisoners/MDNS.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/poisoners/MDNS.py b/poisoners/MDNS.py index 959ac43..5cfbc10 100644 --- a/poisoners/MDNS.py +++ b/poisoners/MDNS.py @@ -23,12 +23,15 @@ from packets import MDNS_Ans from utils import * def Parse_MDNS_Name(data): - data = data[12:] - NameLen = struct.unpack('>B',data[0])[0] - Name = data[1:1+NameLen] - NameLen_ = struct.unpack('>B',data[1+NameLen])[0] - Name_ = data[1+NameLen:1+NameLen+NameLen_+1] - return Name+'.'+Name_ + try: + data = data[12:] + NameLen = struct.unpack('>B',data[0])[0] + Name = data[1:1+NameLen] + NameLen_ = struct.unpack('>B',data[1+NameLen])[0] + Name_ = data[1+NameLen:1+NameLen+NameLen_+1] + return Name+'.'+Name_ + except IndexError: + return None def Poisoned_MDNS_Name(data): data = data[12:] @@ -46,7 +49,7 @@ class MDNS(BaseRequestHandler): Request_Name = Parse_MDNS_Name(data) # Break out if we don't want to respond to this host - if RespondToThisHost(self.client_address[0], Request_Name) is not True: + if Request_name and RespondToThisHost(self.client_address[0], Request_Name) is not True: return None try: From cb9c2c8b97761cc5e00051efd74c9c3fdaf5762d Mon Sep 17 00:00:00 2001 From: byt3bl33d3r Date: Mon, 3 Aug 2015 02:08:54 +0200 Subject: [PATCH 2/3] changed operand --- poisoners/MDNS.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/poisoners/MDNS.py b/poisoners/MDNS.py index 5cfbc10..9d003b9 100644 --- a/poisoners/MDNS.py +++ b/poisoners/MDNS.py @@ -49,7 +49,7 @@ class MDNS(BaseRequestHandler): Request_Name = Parse_MDNS_Name(data) # Break out if we don't want to respond to this host - if Request_name and RespondToThisHost(self.client_address[0], Request_Name) is not True: + if (not Request_name) or (RespondToThisHost(self.client_address[0], Request_Name) is not True): return None try: From 62ed8f00626a2ad0fbbfb845e808d77938f4513a Mon Sep 17 00:00:00 2001 From: byt3bl33d3r Date: Mon, 3 Aug 2015 02:17:38 +0200 Subject: [PATCH 3/3] fixed var name --- poisoners/MDNS.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/poisoners/MDNS.py b/poisoners/MDNS.py index 9d003b9..ca554db 100644 --- a/poisoners/MDNS.py +++ b/poisoners/MDNS.py @@ -49,7 +49,7 @@ class MDNS(BaseRequestHandler): Request_Name = Parse_MDNS_Name(data) # Break out if we don't want to respond to this host - if (not Request_name) or (RespondToThisHost(self.client_address[0], Request_Name) is not True): + if (not Request_Name) or (RespondToThisHost(self.client_address[0], Request_Name) is not True): return None try: