diff --git a/lib/core/common.py b/lib/core/common.py index c3bcc5198..20958e540 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -1754,3 +1754,6 @@ def getTechniqueData(technique=None): retVal = kb.injection.data[technique] return retVal + +def isTechniqueAvailable(technique=None): + return getTechniqueData(technique) is not None diff --git a/lib/core/option.py b/lib/core/option.py index 11caf317c..d2d3d6835 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -27,6 +27,7 @@ from lib.controller.checks import checkConnection from lib.core.common import getConsoleWidth from lib.core.common import getFileItems from lib.core.common import getFileType +from lib.core.common import isTechniqueAvailable from lib.core.common import normalizePath from lib.core.common import ntToPosixSlashes from lib.core.common import parseTargetDirect @@ -1133,10 +1134,10 @@ def __setKnowledgeBaseAttributes(): kb.data = advancedDict() # Injection types - kb.booleanTest = property(lambda self: getTechniqueData(PAYLOAD.TECHNIQUE.BOOLEAN) is not None) - kb.errorTest = property(lambda self: getTechniqueData(PAYLOAD.TECHNIQUE.ERROR) is not None) - kb.stackedTest = property(lambda self: getTechniqueData(PAYLOAD.TECHNIQUE.STACKED) is not None) - kb.timeTest = property(lambda self: getTechniqueData(PAYLOAD.TECHNIQUE.TIME) is not None) + kb.booleanTest = property(lambda self: isTechniqueAvailable(PAYLOAD.TECHNIQUE.BOOLEAN)) + kb.errorTest = property(lambda self: isTechniqueAvailable(PAYLOAD.TECHNIQUE.ERROR)) + kb.stackedTest = property(lambda self: isTechniqueAvailable(PAYLOAD.TECHNIQUE.STACKED)) + kb.timeTest = property(lambda self: isTechniqueAvailable(PAYLOAD.TECHNIQUE.TIME)) kb.unionTest = None # Basic back-end DBMS fingerprint