diff --git a/plugins/dbms/oracle/enumeration.py b/plugins/dbms/oracle/enumeration.py
index 762e6fde3..47648a53b 100644
--- a/plugins/dbms/oracle/enumeration.py
+++ b/plugins/dbms/oracle/enumeration.py
@@ -166,12 +166,6 @@ class Enumeration(GenericEnumeration):
return ( kb.data.cachedUsersRoles, areAdmins )
- def getDbs(self):
- warnMsg = "on Oracle it is not possible to enumerate databases"
- logger.warn(warnMsg)
-
- return []
-
def searchDb(self):
warnMsg = "on Oracle it is not possible to search databases"
logger.warn(warnMsg)
diff --git a/plugins/generic/enumeration.py b/plugins/generic/enumeration.py
index da08cebdb..b292fe062 100644
--- a/plugins/generic/enumeration.py
+++ b/plugins/generic/enumeration.py
@@ -656,7 +656,16 @@ class Enumeration:
warnMsg += "names will be fetched from 'mysql' database"
logger.warn(warnMsg)
- infoMsg = "fetching database names"
+ if Backend.getIdentifiedDbms() == DBMS.ORACLE:
+ warnMsg = "schema names are going to be used on Oracle "
+ warnMsg += "for enumeration as the counterpart to database "
+ warnMsg += "names on other DBMSes"
+ logger.warn(warnMsg)
+
+ infoMsg = "fetching database (schema) names"
+ else:
+ infoMsg = "fetching database names"
+
logger.info(infoMsg)
rootQuery = queries[Backend.getIdentifiedDbms()].dbs
@@ -685,7 +694,11 @@ class Enumeration:
errMsg = "unable to retrieve the number of databases"
raise sqlmapNoneDataException, errMsg
- indexRange = getRange(count)
+ if Backend.getIdentifiedDbms() == DBMS.ORACLE:
+ plusOne = True
+ else:
+ plusOne = False
+ indexRange = getRange(count, plusOne=plusOne)
for index in indexRange:
if Backend.getIdentifiedDbms() == DBMS.SYBASE:
diff --git a/xml/queries.xml b/xml/queries.xml
index 1bc08678f..bb48e4335 100644
--- a/xml/queries.xml
+++ b/xml/queries.xml
@@ -259,8 +259,11 @@
-
-
+
+
+
+
+