Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 34e77a8

Browse files
committed
ported fix for issue #81 also to blind techniques
1 parent 3e21f3d commit 34e77a8

1 file changed

Lines changed: 14 additions & 5 deletions

File tree

plugins/dbms/mssqlserver/enumeration.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ def searchColumn(self):
261261
dbs = {}
262262
whereTblsQuery = ""
263263
infoMsgTbl = ""
264+
infoMsgDb = ""
264265
colList = conf.col.split(",")
265266
origTbl = conf.tbl
266267
origDb = conf.db
@@ -296,7 +297,16 @@ def searchColumn(self):
296297
whereTblsQuery = " AND (" + " OR ".join("%s = '%s'" % (tblCond, unsafeSQLIdentificatorNaming(tbl)) for tbl in _) + ")"
297298
infoMsgTbl = " for table%s '%s'" % ("s" if len(_) > 1 else "", ", ".join(tbl for tbl in _))
298299

299-
logger.info("%s%s" % (infoMsg, infoMsgTbl))
300+
if conf.db and conf.db != CURRENT_DB:
301+
_ = conf.db.split(",")
302+
infoMsgDb = " in database%s '%s'" % ("s" if len(_) > 1 else "", ", ".join(db for db in _))
303+
elif conf.excludeSysDbs:
304+
infoMsg2 = "skipping system database%s '%s'" % ("s" if len(self.excludeDbsList) > 1 else "", ", ".join(db for db in self.excludeDbsList))
305+
logger.info(infoMsg2)
306+
else:
307+
infoMsgDb = " across all databases"
308+
309+
logger.info("%s%s%s" % (infoMsg, infoMsgTbl, infoMsgDb))
300310

301311
colQuery = "%s%s" % (colCond, colCondParam)
302312
colQuery = colQuery % unsafeSQLIdentificatorNaming(column)
@@ -305,9 +315,6 @@ def searchColumn(self):
305315
db = safeSQLIdentificatorNaming(db)
306316

307317
if conf.excludeSysDbs and db in self.excludeDbsList:
308-
infoMsg = "skipping system database '%s'" % db
309-
logger.info(infoMsg)
310-
311318
continue
312319

313320
if any(isTechniqueAvailable(_) for _ in (PAYLOAD.TECHNIQUE.UNION, PAYLOAD.TECHNIQUE.ERROR)) or conf.direct:
@@ -354,11 +361,12 @@ def searchColumn(self):
354361
if colConsider == "1":
355362
infoMsg += "s like"
356363
infoMsg += " '%s' in database '%s'" % (column, db)
357-
logger.info(infoMsg)
364+
logger.info("%s%s" % (infoMsg, infoMsgTbl))
358365

359366
query = rootQuery.blind.count
360367
query = query % (db, db, db, db, db, db)
361368
query += " AND %s" % colQuery.replace("[DB]", db)
369+
query += whereTblsQuery.replace("[DB]", db)
362370
count = inject.getValue(query, inband=False, error=False, expected=EXPECTED.INT, charsetType=CHARSET_TYPE.DIGITS)
363371

364372
if not isNumPosStrValue(count):
@@ -377,6 +385,7 @@ def searchColumn(self):
377385
query = rootQuery.blind.query
378386
query = query % (db, db, db, db, db, db)
379387
query += " AND %s" % colQuery.replace("[DB]", db)
388+
query += whereTblsQuery.replace("[DB]", db)
380389
query = agent.limitQuery(index, query, colCond.replace("[DB]", db))
381390
tbl = inject.getValue(query, inband=False, error=False)
382391
kb.hintValue = tbl

0 commit comments

Comments
 (0)