diff --git a/lib/core/common.py b/lib/core/common.py index 0ce5c3d07..c49f03b90 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -3129,6 +3129,9 @@ def isDBMSVersionAtLeast(minimum): False >>> isDBMSVersionAtLeast("1.5") True + >>> kb.dbmsVersion = "MySQL 5.4.3-log4" + >>> isDBMSVersionAtLeast("5") + True >>> kb.dbmsVersion = popValue() """ @@ -3137,11 +3140,6 @@ def isDBMSVersionAtLeast(minimum): if not any(isNoneValue(_) for _ in (Backend.getVersion(), minimum)) and Backend.getVersion() != UNKNOWN_DBMS_VERSION: version = Backend.getVersion().replace(" ", "").rstrip('.') - if '.' in version: - parts = version.split('.', 1) - parts[1] = filterStringValue(parts[1], '[0-9]') - version = '.'.join(parts) - correction = 0.0 if ">=" in version: pass @@ -3150,23 +3148,31 @@ def isDBMSVersionAtLeast(minimum): elif '<' in version: correction = -VERSION_COMPARISON_CORRECTION - version = float(filterStringValue(version, '[0-9.]')) + correction + version = extractRegexResult(r"(?P[0-9][0-9.]*)", version) - if isinstance(minimum, six.string_types): - if '.' in minimum: - parts = minimum.split('.', 1) + if version: + if '.' in version: + parts = version.split('.', 1) parts[1] = filterStringValue(parts[1], '[0-9]') - minimum = '.'.join(parts) + version = '.'.join(parts) - correction = 0.0 - if minimum.startswith(">="): - pass - elif minimum.startswith(">"): - correction = VERSION_COMPARISON_CORRECTION + version = float(filterStringValue(version, '[0-9.]')) + correction - minimum = float(filterStringValue(minimum, '[0-9.]')) + correction + if isinstance(minimum, six.string_types): + if '.' in minimum: + parts = minimum.split('.', 1) + parts[1] = filterStringValue(parts[1], '[0-9]') + minimum = '.'.join(parts) - retVal = version >= minimum + correction = 0.0 + if minimum.startswith(">="): + pass + elif minimum.startswith(">"): + correction = VERSION_COMPARISON_CORRECTION + + minimum = float(filterStringValue(minimum, '[0-9.]')) + correction + + retVal = version >= minimum return retVal diff --git a/lib/core/settings.py b/lib/core/settings.py index e222d5298..945668bb3 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -18,7 +18,7 @@ from lib.core.enums import OS from thirdparty.six import unichr as _unichr # sqlmap version (...) -VERSION = "1.3.6.55" +VERSION = "1.3.6.56" TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)