diff --git a/lib/core/option.py b/lib/core/option.py index e50075e52..b1d002d59 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -2145,9 +2145,6 @@ def _mergeOptions(inputOptions, overrideOptions): errMsg += " ('%s')" % ex if ex.message else "" raise SqlmapSyntaxException(errMsg) - if inputOptions.configFile: - configFileParser(inputOptions.configFile) - if hasattr(inputOptions, "items"): inputOptionsItems = inputOptions.items() else: @@ -2157,6 +2154,9 @@ def _mergeOptions(inputOptions, overrideOptions): if key not in conf or value not in (None, False) or overrideOptions: conf[key] = value + if inputOptions.configFile: + configFileParser(inputOptions.configFile) + for key, value in conf.items(): if value is not None: kb.explicitSettings.add(key) diff --git a/lib/parse/configfile.py b/lib/parse/configfile.py index 9a3e3e311..e76ae02a6 100644 --- a/lib/parse/configfile.py +++ b/lib/parse/configfile.py @@ -75,14 +75,14 @@ def configFileParser(configFile): errMsg = "missing a mandatory section 'Target' in the configuration file" raise SqlmapMissingMandatoryOptionException(errMsg) - condition = not config.has_option("Target", "direct") - condition &= not config.has_option("Target", "url") - condition &= not config.has_option("Target", "logFile") - condition &= not config.has_option("Target", "bulkFile") - condition &= not config.has_option("Target", "googleDork") - condition &= not config.has_option("Target", "requestFile") - condition &= not config.has_option("Target", "sitemapUrl") - condition &= not config.has_option("Target", "wizard") + condition = conf["direct"] == None and not config.has_option("Target", "direct") + condition &= conf["url"] == None and not config.has_option("Target", "url") + condition &= conf["logFile"] == None and not config.has_option("Target", "logFile") + condition &= conf["bulkFile"] == None and not config.has_option("Target", "bulkFile") + condition &= conf["googleDork"] == None and not config.has_option("Target", "googleDork") + condition &= conf["requestFile"] == None and not config.has_option("Target", "requestFile") + condition &= conf["sitemapUrl"] == None and not config.has_option("Target", "sitemapUrl") + condition &= conf["wizard"] == None and not config.has_option("Target", "wizard") if condition: errMsg = "missing a mandatory option in the configuration file "