mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2026-10-12 02:22:55 +00:00
minor adjustment of a time based char retrievals (no more infinite increasing of timeSec value for problematic characters)
This commit is contained in:
+14
-11
@@ -586,6 +586,13 @@ fufuh <[email protected]>
|
||||
james <[email protected]>
|
||||
for reporting a bug
|
||||
|
||||
Joe "Pragmatk" <[email protected]>
|
||||
for reporting a few bugs
|
||||
|
||||
John Smith <[email protected]>
|
||||
for reporting several bugs
|
||||
for suggesting some features
|
||||
|
||||
m4l1c3 <[email protected]>
|
||||
for reporting considerable amount of bugs
|
||||
|
||||
@@ -598,26 +605,22 @@ mitchell <[email protected]>
|
||||
nightman <[email protected]>
|
||||
for reporting considerable amount of bugs
|
||||
|
||||
Oso Dog [email protected]
|
||||
for reporting a minor bug
|
||||
|
||||
pacman730 <[email protected]>
|
||||
for reporting a bug
|
||||
|
||||
pentestmonkey <[email protected]>
|
||||
for reporting several bugs
|
||||
for suggesting a few minor enhancements
|
||||
|
||||
Phat R. <[email protected]>
|
||||
for reporting a few bugs
|
||||
|
||||
Phil P <@superevr>
|
||||
for suggesting a minor enhancement
|
||||
|
||||
Joe "Pragmatk" <[email protected]>
|
||||
for reporting a few bugs
|
||||
|
||||
John Smith <[email protected]>
|
||||
for reporting several bugs
|
||||
for suggesting some features
|
||||
|
||||
pentestmonkey <[email protected]>
|
||||
for reporting several bugs
|
||||
for suggesting a few minor enhancements
|
||||
|
||||
ragos <[email protected]>
|
||||
for reporting a minor bug
|
||||
|
||||
|
||||
@@ -1432,6 +1432,7 @@ def __setKnowledgeBaseAttributes(flushAll=True):
|
||||
kb.pageTemplates = dict()
|
||||
kb.orderByColumns = None
|
||||
kb.originalPage = None
|
||||
kb.originalTimeDelay = None
|
||||
|
||||
# Back-end DBMS underlying operating system fingerprint via banner (-b)
|
||||
# parsing
|
||||
|
||||
@@ -391,3 +391,6 @@ TRIM_STDOUT_DUMP_SIZE = 1024
|
||||
|
||||
# Step used in ORDER BY technique used for finding the right number of columns in UNION query injections
|
||||
ORDER_BY_STEP = 10
|
||||
|
||||
# Maximum number of times for revalidation of a character in time-based injections
|
||||
MAX_TIME_REVALIDATION_STEPS = 5
|
||||
|
||||
@@ -44,6 +44,7 @@ from lib.core.settings import INFERENCE_UNKNOWN_CHAR
|
||||
from lib.core.settings import INFERENCE_GREATER_CHAR
|
||||
from lib.core.settings import INFERENCE_EQUALS_CHAR
|
||||
from lib.core.settings import INFERENCE_NOT_EQUALS_CHAR
|
||||
from lib.core.settings import MAX_TIME_REVALIDATION_STEPS
|
||||
from lib.core.settings import PYVERSION
|
||||
from lib.core.threads import getCurrentThreadData
|
||||
from lib.core.threads import runThreads
|
||||
@@ -259,16 +260,23 @@ def bisection(payload, expression, length=None, charsetType=None, firstChar=None
|
||||
errMsg = "invalid character detected. retrying.."
|
||||
logger.error(errMsg)
|
||||
|
||||
conf.timeSec += 1
|
||||
warnMsg = "increasing time delay to %d second%s " % (conf.timeSec, 's' if conf.timeSec > 1 else '')
|
||||
warnMsg += "(due to invalid char)"
|
||||
logger.warn(warnMsg)
|
||||
if not kb.originalTimeDelay:
|
||||
kb.originalTimeDelay = conf.timeSec
|
||||
|
||||
if kb.adjustTimeDelay:
|
||||
dbgMsg = "turning off auto-adjustment mechanism"
|
||||
logger.debug(dbgMsg)
|
||||
kb.adjustTimeDelay = False
|
||||
return getChar(idx, originalTbl, continuousOrder, expand)
|
||||
conf.timeSec += 1
|
||||
if (conf.timeSec - kb.originalTimeDelay) <= MAX_TIME_REVALIDATION_STEPS:
|
||||
warnMsg = "increasing time delay to %d second%s " % (conf.timeSec, 's' if conf.timeSec > 1 else '')
|
||||
warnMsg += "(due to invalid char)"
|
||||
logger.warn(warnMsg)
|
||||
|
||||
if kb.adjustTimeDelay:
|
||||
dbgMsg = "turning off auto-adjustment mechanism"
|
||||
logger.debug(dbgMsg)
|
||||
kb.adjustTimeDelay = False
|
||||
return getChar(idx, originalTbl, continuousOrder, expand)
|
||||
else:
|
||||
conf.timeSec = kb.originalTimeDelay
|
||||
return None
|
||||
else:
|
||||
return decodeIntToUnicode(retVal)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user