mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2024-11-22 09:36:35 +03:00
actual implementation of issue #75, still some work to do
This commit is contained in:
parent
3a94953ae2
commit
ee3aeb8dcf
|
@ -798,6 +798,9 @@ class Agent:
|
||||||
|
|
||||||
return unescaper.unescape(lengthExpr)
|
return unescaper.unescape(lengthExpr)
|
||||||
|
|
||||||
|
def forgeQueryOutputLengthZero(self, expression):
|
||||||
|
return self.forgeCaseStatement(self.forgeQueryOutputLength(expression))
|
||||||
|
|
||||||
def forgeCaseStatement(self, expression):
|
def forgeCaseStatement(self, expression):
|
||||||
"""
|
"""
|
||||||
Take in input a query string and return its CASE statement query
|
Take in input a query string and return its CASE statement query
|
||||||
|
|
|
@ -1740,7 +1740,12 @@ class Enumeration:
|
||||||
elif Backend.isDbms(DBMS.FIREBIRD):
|
elif Backend.isDbms(DBMS.FIREBIRD):
|
||||||
query = rootQuery.blind.query % (index, column, tbl)
|
query = rootQuery.blind.query % (index, column, tbl)
|
||||||
|
|
||||||
value = inject.getValue(query, inband=False, error=False, dump=True)
|
# Skip enumeration of cells that have a value length of 0
|
||||||
|
if not inject.checkBooleanExpression(agent.forgeQueryOutputLengthZero(query)):
|
||||||
|
logger.debug(query)
|
||||||
|
value = ""
|
||||||
|
else:
|
||||||
|
value = inject.getValue(query, inband=False, error=False, dump=True)
|
||||||
|
|
||||||
lengths[column] = max(lengths[column], len(value) if value else 0)
|
lengths[column] = max(lengths[column], len(value) if value else 0)
|
||||||
entries[column].append(value)
|
entries[column].append(value)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user