diff --git a/lib/core/option.py b/lib/core/option.py index 5c458c2b1..514ce5a8e 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -234,7 +234,16 @@ def _feedTargetsDict(reqFile, addedTargetUrls): if not re.search(BURP_REQUEST_REGEX, content, re.I | re.S): if re.search(BURP_XML_HISTORY_REGEX, content, re.I | re.S): - reqResList = [_.decode("base64") for _ in re.findall(BURP_XML_HISTORY_REGEX, content, re.I | re.S)] + reqResList = [] + for match in re.finditer(BURP_XML_HISTORY_REGEX, content, re.I | re.S): + port, request = match.groups() + request = request.decode("base64") + _ = re.search(r"%s:.+" % HTTP_HEADER.HOST, request) + if _: + host = _.group(0).strip() + if not re.search(r":\d+\Z", host): + request = request.replace(host, "%s:%d" % (host, int(port))) + reqResList.append(request) else: reqResList = [content] else: diff --git a/lib/core/settings.py b/lib/core/settings.py index 05edefa14..14cc72c85 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -266,7 +266,7 @@ WEBSCARAB_SPLITTER = "### Conversation" BURP_REQUEST_REGEX = r"={10,}\s+[^=]+={10,}\s(.+?)\s={10,}" # Regex used for parsing XML Burp saved history items -BURP_XML_HISTORY_REGEX = r'(\d+).+?