diff --git a/lib/core/convert.py b/lib/core/convert.py index 71afeb0ae..4337e0525 100644 --- a/lib/core/convert.py +++ b/lib/core/convert.py @@ -238,7 +238,7 @@ def getBytes(value, encoding=None, errors="strict", unsafe=True): retVal = value if encoding is None: - encoding = conf.encoding or UNICODE_ENCODING + encoding = conf.get("encoding") or UNICODE_ENCODING try: codecs.lookup(encoding) diff --git a/lib/core/settings.py b/lib/core/settings.py index 4a8981ce2..586fd275c 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.1.24" +VERSION = "1.4.1.25" 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/utils/api.py b/lib/utils/api.py index 480193148..4e30c9b6d 100644 --- a/lib/utils/api.py +++ b/lib/utils/api.py @@ -29,6 +29,8 @@ from lib.core.convert import decodeBase64 from lib.core.convert import dejsonize from lib.core.convert import encodeBase64 from lib.core.convert import encodeHex +from lib.core.convert import getBytes +from lib.core.convert import getText from lib.core.convert import jsonize from lib.core.data import conf from lib.core.data import kb @@ -711,17 +713,19 @@ def server(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT, adapter=REST def _client(url, options=None): logger.debug("Calling '%s'" % url) try: - data = None - if options is not None: - data = jsonize(options).encode("utf-8") headers = {"Content-Type": "application/json"} + if options is not None: + data = getBytes(jsonize(options)) + else: + data = None + if DataStore.username or DataStore.password: headers["Authorization"] = "Basic %s" % encodeBase64("%s:%s" % (DataStore.username or "", DataStore.password or ""), binary=False) req = _urllib.request.Request(url, data, headers) response = _urllib.request.urlopen(req) - text = response.read().decode("utf-8") + text = getText(response.read()) except: if options: logger.error("Failed to load and parse %s" % url)