diff --git a/plugins/generic/enumeration.py b/plugins/generic/enumeration.py index ce105442a..d89f59cb3 100644 --- a/plugins/generic/enumeration.py +++ b/plugins/generic/enumeration.py @@ -1212,10 +1212,18 @@ class Enumeration: if kb.dbms == DBMS.ACCESS: for column in colList: - # It would be good to have a numeric column as a pivot - result = inject.checkBooleanExpression("%s" % safeStringFormat("EXISTS(SELECT %s FROM %s WHERE RND(%s)>0)", (column, conf.tbl, column))) + infoMsg = "fetching number of distinct " + infoMsg += "values for column '%s'" % column + logger.info(infoMsg) + + query = rootQuery.blind.count2 % (column, conf.tbl) + value = inject.getValue(query, inband=False) + + if isNumPosStrValue(value) and value == count: + infoMsg = "using column '%s' as a pivot " % column + infoMsg += "for retrieving row data" + logger.info(infoMsg) - if result: colList.remove(column) colList.insert(0, column) break diff --git a/xml/queries.xml b/xml/queries.xml index 864084c6c..3cc7cddc2 100644 --- a/xml/queries.xml +++ b/xml/queries.xml @@ -359,7 +359,7 @@ - +