diff --git a/lib/controller/controller.py b/lib/controller/controller.py index 9305e34c5..dda2ef76c 100644 --- a/lib/controller/controller.py +++ b/lib/controller/controller.py @@ -237,7 +237,7 @@ def start(): return True if conf.url and not any([conf.forms, conf.crawlDepth]): - kb.targetUrls.add(( conf.url, conf.method, conf.data, conf.cookie )) + kb.targetUrls.add((conf.url, conf.method, conf.data, conf.cookie)) if conf.configFile and not kb.targetUrls: errMsg = "you did not edit the configuration file properly, set " diff --git a/lib/core/common.py b/lib/core/common.py index 34654df9c..4625efd82 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -1029,6 +1029,8 @@ def parseTargetUrl(): if not conf.url: return + originalUrl = conf.url + if re.search("\[.+\]", conf.url) and not socket.has_ipv6: errMsg = "IPv6 addressing is not supported " errMsg += "on this platform" @@ -1091,6 +1093,9 @@ def parseTargetUrl(): conf.httpHeaders = filter(lambda (key, value): key != HTTPHEADER.HOST, conf.httpHeaders) conf.httpHeaders.append((HTTPHEADER.HOST, getHostHeader(conf.url))) + if originalUrl != conf.url: + kb.originalUrls[conf.url] = originalUrl + def expandAsteriskForColumns(expression): """ If the user provided an asterisk rather than the column(s) diff --git a/lib/core/option.py b/lib/core/option.py index 4e618adc6..763b716a2 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -1519,6 +1519,7 @@ def __setKnowledgeBaseAttributes(flushAll=True): kb.originalCode = None kb.originalPage = None kb.originalTimeDelay = None + kb.originalUrls = dict() # Back-end DBMS underlying operating system fingerprint via banner (-b) # parsing diff --git a/lib/core/target.py b/lib/core/target.py index 4d1201538..e721a66c2 100644 --- a/lib/core/target.py +++ b/lib/core/target.py @@ -398,6 +398,9 @@ def __createTargetDirs(): conf.outputPath = tempDir + with open(os.path.join(conf.outputPath, "target.txt"), "w+") as f: + f.write(kb.originalUrls.get(conf.url) or conf.url or conf.hostname) + __createDumpDir() __createFilesDir() __configureDumper()