mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-01-24 08:14:24 +03:00
Fix for Issue #61
This commit is contained in:
parent
1ebff35b19
commit
6a05e3fd79
|
@ -1469,6 +1469,7 @@ def __setKnowledgeBaseAttributes(flushAll=True):
|
||||||
kb.endDetection = False
|
kb.endDetection = False
|
||||||
kb.explicitSettings = set()
|
kb.explicitSettings = set()
|
||||||
kb.errorIsNone = True
|
kb.errorIsNone = True
|
||||||
|
kb.fileReadMode = False
|
||||||
kb.forcedDbms = None
|
kb.forcedDbms = None
|
||||||
kb.headersFp = {}
|
kb.headersFp = {}
|
||||||
kb.heuristicTest = None
|
kb.heuristicTest = None
|
||||||
|
|
|
@ -106,7 +106,7 @@ def __oneShotErrorUse(expression, field):
|
||||||
warnMsg += trimmed
|
warnMsg += trimmed
|
||||||
logger.warn(warnMsg)
|
logger.warn(warnMsg)
|
||||||
|
|
||||||
if any(map(lambda dbms: Backend.isDbms(dbms), [DBMS.MYSQL, DBMS.MSSQL])):
|
if any(Backend.isDbms(dbms) for dbms in (DBMS.MYSQL, DBMS.MSSQL)):
|
||||||
if offset == 1:
|
if offset == 1:
|
||||||
retVal = output
|
retVal = output
|
||||||
else:
|
else:
|
||||||
|
@ -116,6 +116,14 @@ def __oneShotErrorUse(expression, field):
|
||||||
offset += chunk_length
|
offset += chunk_length
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
|
if kb.fileReadMode and output:
|
||||||
|
_ = output
|
||||||
|
try:
|
||||||
|
_ = safecharencode(output.decode("hex")).replace(r"\n", "\n")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
dataToStdout(_)
|
||||||
else:
|
else:
|
||||||
retVal = output
|
retVal = output
|
||||||
break
|
break
|
||||||
|
@ -161,7 +169,9 @@ def __errorFields(expression, expressionFields, expressionFieldsList, expected=N
|
||||||
if not kb.threadContinue:
|
if not kb.threadContinue:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if output is not None and not (threadData.resumed and kb.suppressResumeInfo):
|
if kb.fileReadMode:
|
||||||
|
print
|
||||||
|
elif output is not None and not (threadData.resumed and kb.suppressResumeInfo):
|
||||||
dataToStdout("[%s] [INFO] %s: %s\r\n" % (time.strftime("%X"), "resumed" if threadData.resumed else "retrieved", safecharencode(output)))
|
dataToStdout("[%s] [INFO] %s: %s\r\n" % (time.strftime("%X"), "resumed" if threadData.resumed else "retrieved", safecharencode(output)))
|
||||||
|
|
||||||
if isinstance(num, int):
|
if isinstance(num, int):
|
||||||
|
|
|
@ -19,6 +19,7 @@ from lib.core.common import randomStr
|
||||||
from lib.core.common import readInput
|
from lib.core.common import readInput
|
||||||
from lib.core.convert import hexdecode
|
from lib.core.convert import hexdecode
|
||||||
from lib.core.data import conf
|
from lib.core.data import conf
|
||||||
|
from lib.core.data import kb
|
||||||
from lib.core.data import logger
|
from lib.core.data import logger
|
||||||
from lib.core.enums import DBMS
|
from lib.core.enums import DBMS
|
||||||
from lib.core.enums import CHARSET_TYPE
|
from lib.core.enums import CHARSET_TYPE
|
||||||
|
@ -191,6 +192,8 @@ class Filesystem:
|
||||||
|
|
||||||
self.checkDbmsOs()
|
self.checkDbmsOs()
|
||||||
|
|
||||||
|
kb.fileReadMode = True
|
||||||
|
|
||||||
if conf.direct or isTechniqueAvailable(PAYLOAD.TECHNIQUE.STACKED):
|
if conf.direct or isTechniqueAvailable(PAYLOAD.TECHNIQUE.STACKED):
|
||||||
if isTechniqueAvailable(PAYLOAD.TECHNIQUE.STACKED):
|
if isTechniqueAvailable(PAYLOAD.TECHNIQUE.STACKED):
|
||||||
debugMsg = "going to read the file with stacked query SQL "
|
debugMsg = "going to read the file with stacked query SQL "
|
||||||
|
@ -208,6 +211,8 @@ class Filesystem:
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
kb.fileReadMode = False
|
||||||
|
|
||||||
if fileContent in ( None, "" ) and not Backend.isDbms(DBMS.PGSQL):
|
if fileContent in ( None, "" ) and not Backend.isDbms(DBMS.PGSQL):
|
||||||
self.cleanup(onlyFileTbl=True)
|
self.cleanup(onlyFileTbl=True)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user