diff --git a/lib/core/option.py b/lib/core/option.py index 4cf558b1b..8ab6e5ee1 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -62,6 +62,7 @@ from lib.core.exception import sqlmapSyntaxException from lib.core.exception import sqlmapUnsupportedDBMSException from lib.core.exception import sqlmapUserQuitException from lib.core.optiondict import optDict +from lib.core.settings import DEFAULT_PAGE_ENCODING from lib.core.settings import IS_WIN from lib.core.settings import PLATFORM from lib.core.settings import PYVERSION @@ -1142,7 +1143,7 @@ def __setKnowledgeBaseAttributes(flushAll=True): kb.osVersion = None kb.osSP = None - kb.pageEncoding = None + kb.pageEncoding = DEFAULT_PAGE_ENCODING kb.pageStable = None kb.partRun = None kb.proxyAuthHeader = None diff --git a/lib/request/basic.py b/lib/request/basic.py index e823a352c..67859a401 100644 --- a/lib/request/basic.py +++ b/lib/request/basic.py @@ -122,6 +122,9 @@ def decodePage(page, contentEncoding, contentType): Decode compressed/charset HTTP response """ + if not page or (conf.nullConnection and len(page) < 2): + return getUnicode(page) + if isinstance(contentEncoding, basestring) and contentEncoding.lower() in ('gzip', 'x-gzip', 'deflate'): if contentEncoding == 'deflate': # http://stackoverflow.com/questions/1089662/python-inflate-and-deflate-implementations