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

Method searchColumn

plugins/dbms/mssqlserver/enumeration.py:278–446  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

276 self.dumpFoundTables(foundTbls)
277
278 def searchColumn(self):
279 rootQuery = queries[DBMS.MSSQL].search_column
280 foundCols = {}
281 dbs = {}
282 whereTblsQuery = ""
283 infoMsgTbl = ""
284 infoMsgDb = ""
285 colList = conf.col.split(',')
286
287 if conf.exclude:
288 colList = [_ for _ in colList if re.search(conf.exclude, _, re.I) is None]
289
290 origTbl = conf.tbl
291 origDb = conf.db
292 colCond = rootQuery.inband.condition
293 tblCond = rootQuery.inband.condition2
294 colConsider, colCondParam = self.likeOrExact("column")
295
296 if conf.db == CURRENT_DB:
297 conf.db = self.getCurrentDb()
298
299 if conf.db:
300 enumDbs = conf.db.split(',')
301 elif not len(kb.data.cachedDbs):
302 enumDbs = self.getDbs()
303 else:
304 enumDbs = kb.data.cachedDbs
305
306 for db in enumDbs:
307 db = safeSQLIdentificatorNaming(db)
308 dbs[db] = {}
309
310 for column in colList:
311 column = safeSQLIdentificatorNaming(column)
312 conf.db = origDb
313 conf.tbl = origTbl
314
315 infoMsg = "searching column"
316 if colConsider == "1":
317 infoMsg += "s LIKE"
318 infoMsg += " '%s'" % unsafeSQLIdentificatorNaming(column)
319
320 foundCols[column] = {}
321
322 if conf.tbl:
323 _ = conf.tbl.split(',')
324 whereTblsQuery = " AND (" + " OR ".join("%s = '%s'" % (tblCond, unsafeSQLIdentificatorNaming(tbl)) for tbl in _) + ")"
325 infoMsgTbl = " for table%s '%s'" % ("s" if len(_) > 1 else "", ", ".join(tbl for tbl in _))
326
327 if conf.db == CURRENT_DB:
328 conf.db = self.getCurrentDb()
329
330 if conf.db:
331 _ = conf.db.split(',')
332 infoMsgDb = " in database%s '%s'" % ("s" if len(_) > 1 else "", ", ".join(db for db in _))
333 elif conf.excludeSysDbs:
334 infoMsgDb = " not in system database%s '%s'" % ("s" if len(self.excludeDbsList) > 1 else "", ", ".join(db for db in self.excludeDbsList))
335 else:

Callers

nothing calls this directly

Calls 15

getCurrentDbMethod · 0.95
getDbsMethod · 0.95
getColumnsMethod · 0.95
isTechniqueAvailableFunction · 0.90
isNoneValueFunction · 0.90
unArrayizeValueFunction · 0.90
isNumPosStrValueFunction · 0.90
getLimitRangeFunction · 0.90
likeOrExactMethod · 0.80
infoMethod · 0.80

Tested by

no test coverage detected