diff --git a/lib/core/settings.py b/lib/core/settings.py index 16ee1327b..ac038b010 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.4.2.18" +VERSION = "1.4.2.19" 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/request/basic.py b/lib/request/basic.py index 5e20a4129..15dd04bc2 100644 --- a/lib/request/basic.py +++ b/lib/request/basic.py @@ -4,6 +4,7 @@ Copyright (c) 2006-2020 sqlmap developers (http://sqlmap.org/) See the file 'LICENSE' for copying permission """ +from __future__ import print_function import codecs import gzip @@ -174,7 +175,7 @@ def checkCharEncoding(encoding, warn=True): if encoding: encoding = encoding.lower() else: - return "A" # encoding + return encoding # Reference: http://www.destructor.de/charsets/index.htm translate = {"windows-874": "iso-8859-11", "utf-8859-1": "utf8", "en_us": "utf8", "macintosh": "iso-8859-1", "euc_tw": "big5_tw", "th": "tis-620", "unicode": "utf8", "utc8": "utf8", "ebcdic": "ebcdic-cp-be", "iso-8859": "iso8859-1", "iso-8859-0": "iso8859-1", "ansi": "ascii", "gbk2312": "gbk", "windows-31j": "cp932", "en": "us"} @@ -227,7 +228,7 @@ def checkCharEncoding(encoding, warn=True): if encoding in translate: encoding = translate[encoding] elif encoding in ("null", "{charset}", "charset", "*") or not re.search(r"\w", encoding): - return "B" # None + return None # Reference: http://www.iana.org/assignments/character-sets # Reference: http://docs.python.org/library/codecs.html @@ -238,8 +239,12 @@ def checkCharEncoding(encoding, warn=True): if encoding: try: - six.text_type(getBytes(randomStr()), encoding) - except: + _ = getBytes(randomStr()) + print(repr(_)) + print(encoding) + six.text_type(_, encoding) + except Exception as ex: + print(getSafeExString(ex)) if warn: warnMsg = "invalid web page charset '%s'" % encoding singleTimeLogMessage(warnMsg, logging.WARN, encoding)