From 91045aab605028d9f9aad99b7b6b3f2b4502c23d Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Tue, 5 Jan 2021 13:36:04 +0100 Subject: [PATCH] Fixes #4510 --- lib/core/common.py | 2 +- lib/core/settings.py | 2 +- lib/parse/banner.py | 4 ++-- lib/parse/handler.py | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/core/common.py b/lib/core/common.py index a62107f25..fe7ba906b 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -1272,7 +1272,7 @@ def sanitizeStr(value): True """ - return getUnicode(value).replace("\n", " ").replace("\r", "") + return getUnicode(value).replace("\n", " ").replace("\r", "") if value else value def getHeader(headers, key): """ diff --git a/lib/core/settings.py b/lib/core/settings.py index 35479c61e..fec293570 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.5.1.6" +VERSION = "1.5.1.7" 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) diff --git a/lib/parse/banner.py b/lib/parse/banner.py index 10cba0c8d..6c5b8fe50 100644 --- a/lib/parse/banner.py +++ b/lib/parse/banner.py @@ -26,7 +26,7 @@ class MSSQLBannerHandler(ContentHandler): def __init__(self, banner, info): ContentHandler.__init__(self) - self._banner = sanitizeStr(banner) + self._banner = sanitizeStr(banner or "") self._inVersion = False self._inServicePack = False self._release = None @@ -62,7 +62,7 @@ class MSSQLBannerHandler(ContentHandler): def endElement(self, name): if name == "signature": for version in (self._version, self._versionAlt): - if version and re.search(r" %s[\.\ ]+" % re.escape(version), self._banner): + if version and self._banner and re.search(r" %s[\.\ ]+" % re.escape(version), self._banner): self._feedInfo("dbmsRelease", self._release) self._feedInfo("dbmsVersion", self._version) self._feedInfo("dbmsServicePack", self._servicePack) diff --git a/lib/parse/handler.py b/lib/parse/handler.py index d88b79a31..8976e31c4 100644 --- a/lib/parse/handler.py +++ b/lib/parse/handler.py @@ -20,7 +20,7 @@ class FingerprintHandler(ContentHandler): def __init__(self, banner, info): ContentHandler.__init__(self) - self._banner = sanitizeStr(banner) + self._banner = sanitizeStr(banner or "") self._regexp = None self._match = None self._dbmsVersion = None @@ -47,7 +47,7 @@ class FingerprintHandler(ContentHandler): self._regexp = sanitizeStr(attrs.get("value")) _ = re.match(r"\A[A-Za-z0-9]+", self._regexp) # minor trick avoiding compiling of large amount of regexes - if _ and _.group(0).lower() in self._banner.lower() or not _: + if _ and self._banner and _.group(0).lower() in self._banner.lower() or not _: self._match = re.search(self._regexp, self._banner, re.I | re.M) else: self._match = None