MCPcopy Index your code
hub / github.com/sqlmapproject/sqlmap / getTables

Method getTables

plugins/dbms/maxdb/enumeration.py:63–101  ·  view source on GitHub ↗
(self, bruteForce=None)

Source from the content-addressed store, hash-verified

61 return kb.data.cachedDbs
62
63 def getTables(self, bruteForce=None):
64 if len(kb.data.cachedTables) > 0:
65 return kb.data.cachedTables
66
67 self.forceDbmsEnum()
68
69 if conf.db == CURRENT_DB:
70 conf.db = self.getCurrentDb()
71
72 if conf.db:
73 dbs = conf.db.split(',')
74 else:
75 dbs = self.getDbs()
76
77 for db in (_ for _ in dbs if _):
78 dbs[dbs.index(db)] = safeSQLIdentificatorNaming(db)
79
80 infoMsg = "fetching tables for database"
81 infoMsg += "%s: %s" % ("s" if len(dbs) > 1 else "", ", ".join(db if isinstance(db, six.string_types) else db[0] for db in sorted(dbs)))
82 logger.info(infoMsg)
83
84 rootQuery = queries[DBMS.MAXDB].tables
85
86 for db in dbs:
87 query = rootQuery.inband.query % (("'%s'" % db) if db != "USER" else 'USER')
88 blind = not isTechniqueAvailable(PAYLOAD.TECHNIQUE.UNION)
89 retVal = pivotDumpTable("(%s) AS %s" % (query, kb.aliasName), ['%s.tablename' % kb.aliasName], blind=blind)
90
91 if retVal:
92 for table in list(retVal[0].values())[0]:
93 if db not in kb.data.cachedTables:
94 kb.data.cachedTables[db] = [table]
95 else:
96 kb.data.cachedTables[db].append(table)
97
98 for db, tables in kb.data.cachedTables.items():
99 kb.data.cachedTables[db] = sorted(tables) if tables else tables
100
101 return kb.data.cachedTables
102
103 def getColumns(self, onlyColNames=False, colTuple=None, bruteForce=None, dumpMode=False):
104 self.forceDbmsEnum()

Callers 1

getColumnsMethod · 0.95

Calls 11

getCurrentDbMethod · 0.95
getDbsMethod · 0.95
isTechniqueAvailableFunction · 0.90
pivotDumpTableFunction · 0.90
infoMethod · 0.80
valuesMethod · 0.80
itemsMethod · 0.80
forceDbmsEnumMethod · 0.45
indexMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected