(self)
| 87 | return (kb.data.cachedUsersPrivileges, areAdmins) |
| 88 | |
| 89 | def getDbs(self): |
| 90 | if len(kb.data.cachedDbs) > 0: |
| 91 | return kb.data.cachedDbs |
| 92 | |
| 93 | infoMsg = "fetching database names" |
| 94 | logger.info(infoMsg) |
| 95 | |
| 96 | rootQuery = queries[DBMS.SYBASE].dbs |
| 97 | query = rootQuery.inband.query |
| 98 | |
| 99 | if any(isTechniqueAvailable(_) for _ in (PAYLOAD.TECHNIQUE.UNION, PAYLOAD.TECHNIQUE.ERROR, PAYLOAD.TECHNIQUE.QUERY)) or conf.direct: |
| 100 | blinds = [False, True] |
| 101 | else: |
| 102 | blinds = [True] |
| 103 | |
| 104 | for blind in blinds: |
| 105 | retVal = pivotDumpTable("(%s) AS %s" % (query, kb.aliasName), ['%s.name' % kb.aliasName], blind=blind, alias=kb.aliasName) |
| 106 | |
| 107 | if retVal: |
| 108 | kb.data.cachedDbs = next(six.itervalues(retVal[0])) |
| 109 | break |
| 110 | |
| 111 | if kb.data.cachedDbs: |
| 112 | kb.data.cachedDbs.sort() |
| 113 | |
| 114 | return kb.data.cachedDbs |
| 115 | |
| 116 | def getTables(self, bruteForce=None): |
| 117 | if len(kb.data.cachedTables) > 0: |
no test coverage detected