diff --git a/lib/core/agent.py b/lib/core/agent.py index ca935849a..62cbe3764 100644 --- a/lib/core/agent.py +++ b/lib/core/agent.py @@ -592,7 +592,7 @@ class Agent: return inbandQuery - def limitQuery(self, num, query, field=None): + def limitQuery(self, num, query, field=None, uniqueField=None): """ Take in input a query string and return its limited query string. @@ -672,12 +672,12 @@ class Agent: limitedQuery = limitedQuery.replace("SELECT ", (limitStr % 1), 1) if " WHERE " in limitedQuery: - limitedQuery = "%s AND %s " % (limitedQuery, field) + limitedQuery = "%s AND %s " % (limitedQuery, field if not uniqueField else uniqueField) else: - limitedQuery = "%s WHERE %s " % (limitedQuery, field) + limitedQuery = "%s WHERE %s " % (limitedQuery, field if not uniqueField else uniqueField) limitedQuery += "NOT IN (%s" % (limitStr % num) - limitedQuery += "%s %s)" % (field, fromFrom) + limitedQuery += "%s %s)" % (field if not uniqueField else uniqueField, fromFrom) if orderBy: limitedQuery += orderBy diff --git a/lib/techniques/error/use.py b/lib/techniques/error/use.py index 7ecfa7a6b..0faff6165 100644 --- a/lib/techniques/error/use.py +++ b/lib/techniques/error/use.py @@ -81,7 +81,7 @@ def __errorFields(expression, expressionFields, expressionFieldsList, expected=N if isinstance(num, int): origExpr = expression - expression = agent.limitQuery(num, expression, field) + expression = agent.limitQuery(num, expression, field, expressionFieldsList[0]) if "ROWNUM" in expressionFieldsList: expressionReplaced = expression