From bec2c04671a0372a813b4f17f79678dc7562d774 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Tue, 24 May 2011 17:15:25 +0000 Subject: [PATCH] helping dummy users --- lib/controller/controller.py | 11 +++++++++-- lib/core/option.py | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/controller/controller.py b/lib/controller/controller.py index 9e26b6504..3d1f480aa 100644 --- a/lib/controller/controller.py +++ b/lib/controller/controller.py @@ -40,6 +40,7 @@ from lib.core.enums import HTTPMETHOD from lib.core.enums import PAYLOAD from lib.core.enums import PLACE from lib.core.exception import exceptionsTuple +from lib.core.exception import sqlmapNoneDataException from lib.core.exception import sqlmapNotVulnerableException from lib.core.exception import sqlmapSilentQuitException from lib.core.exception import sqlmapValueException @@ -392,10 +393,12 @@ def start(): if not proceed: break - testSqlInj = True + kb.vainRun = False paramKey = (conf.hostname, conf.path, place, parameter) + testSqlInj = True + if paramKey in kb.testedParams: testSqlInj = False @@ -458,7 +461,11 @@ def start(): logger.warn(warnMsg) if len(kb.injections) == 0 or (len(kb.injections) == 1 and kb.injections[0].place is None): - if not conf.realTest: + if kb.vainRun and not conf.multipleTargets: + errMsg = "no testable parameter(s) found in the provided data " + errMsg += "(e.g. GET parameter 'id' in 'www.site.com/index.php?id=1')" + raise sqlmapNoneDataException, errMsg + elif not conf.realTest: errMsg = "all parameters are not injectable." if conf.level < 5 or conf.risk < 3: diff --git a/lib/core/option.py b/lib/core/option.py index 1e3b8a313..47af9874d 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -1383,7 +1383,6 @@ def __setKnowledgeBaseAttributes(flushAll=True): kb.suppressSession = False kb.suppressResumeInfo = False kb.technique = None - kb.tested = [] kb.testMode = False kb.testQueryCount = 0 kb.threadContinue = True @@ -1406,6 +1405,7 @@ def __setKnowledgeBaseAttributes(flushAll=True): kb.targetUrls = oset() kb.testedParams = set() kb.userAgents = None + kb.vainRun = True kb.wordlist = None def __useWizardInterface():