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

Skip to content

Commit 3c95d71

Browse files
committed
Minor bug fix - restored of so called kb.misc.testedDbms (now kb.misc.fpDbms) to force the DBMS (only) during the fingerprint phase
1 parent f209b7a commit 3c95d71

23 files changed

Lines changed: 31 additions & 39 deletions

lib/controller/handler.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ def setHandler():
9898
kb.dbmsDetected = True
9999
conf.dbmsHandler = handler
100100

101-
return
101+
break
102102
else:
103103
conf.dbmsConnector = None
104+
105+
# At this point proper back-end DBMS will be identified (kb.dbms)
106+
# so we have to force DBMS
107+
kb.misc.fpDbms = None

lib/core/common.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2044,7 +2044,9 @@ def getErrorParsedDBMSes():
20442044
def getIdentifiedDBMS():
20452045
dbms = None
20462046

2047-
if kb.dbms is not None:
2047+
if kb.misc.fpDbms is not None:
2048+
dbms = kb.misc.fpDbms
2049+
elif kb.dbms is not None:
20482050
dbms = kb.dbms
20492051
elif conf.dbms is not None:
20502052
dbms = conf.dbms

lib/core/option.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,6 +1172,7 @@ def __setKnowledgeBaseAttributes(flushAll=True):
11721172
kb.misc.start = ":%s:" % randomStr(length=3, lowercase=True)
11731173
kb.misc.stop = ":%s:" % randomStr(length=3, lowercase=True)
11741174
kb.misc.space = ":%s:" % randomStr(length=1, lowercase=True)
1175+
kb.misc.fpDbms = None
11751176

11761177
if flushAll:
11771178
kb.keywords = set(getFileItems(paths.SQL_KEYWORDS))

plugins/dbms/access/enumeration.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@
88
"""
99

1010
from lib.core.data import logger
11-
from lib.core.enums import DBMS
12-
1311
from plugins.generic.enumeration import Enumeration as GenericEnumeration
1412

1513
class Enumeration(GenericEnumeration):
1614
def __init__(self):
17-
GenericEnumeration.__init__(self, DBMS.ACCESS)
15+
GenericEnumeration.__init__(self)
1816

1917
def getDbs(self):
2018
warnMsg = "on Microsoft Access it is not possible to enumerate databases"

plugins/dbms/access/fingerprint.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
class Fingerprint(GenericFingerprint):
3535
def __init__(self):
36-
GenericFingerprint.__init__(self)
36+
GenericFingerprint.__init__(self, DBMS.ACCESS)
3737

3838
def __sandBoxCheck(self):
3939
# Reference: http://milw0rm.com/papers/198

plugins/dbms/firebird/enumeration.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@
88
"""
99

1010
from lib.core.data import logger
11-
from lib.core.enums import DBMS
12-
1311
from plugins.generic.enumeration import Enumeration as GenericEnumeration
1412

1513
class Enumeration(GenericEnumeration):
1614
def __init__(self):
17-
GenericEnumeration.__init__(self, DBMS.FIREBIRD)
15+
GenericEnumeration.__init__(self)
1816

1917
def getDbs(self):
2018
warnMsg = "on Firebird it is not possible to enumerate databases"

plugins/dbms/firebird/fingerprint.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
class Fingerprint(GenericFingerprint):
3333
def __init__(self):
34-
GenericFingerprint.__init__(self)
34+
GenericFingerprint.__init__(self, DBMS.FIREBIRD)
3535

3636
def getFingerprint(self):
3737
value = ""

plugins/dbms/maxdb/enumeration.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,11 @@
99

1010
from lib.core.data import kb
1111
from lib.core.data import logger
12-
from lib.core.enums import DBMS
13-
1412
from plugins.generic.enumeration import Enumeration as GenericEnumeration
1513

1614
class Enumeration(GenericEnumeration):
1715
def __init__(self):
18-
GenericEnumeration.__init__(self, DBMS.MAXDB)
16+
GenericEnumeration.__init__(self)
1917

2018
kb.data.processChar = lambda x: x.replace('_', ' ') if x else x
2119

plugins/dbms/maxdb/fingerprint.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
class Fingerprint(GenericFingerprint):
3232
def __init__(self):
33-
GenericFingerprint.__init__(self)
33+
GenericFingerprint.__init__(self, DBMS.MAXDB)
3434

3535
def __versionCheck(self):
3636
infoMsg = "executing SAP MaxDB SYSINFO version check"

plugins/dbms/mssqlserver/enumeration.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
from lib.core.data import kb
1818
from lib.core.data import logger
1919
from lib.core.data import queries
20-
from lib.core.enums import DBMS
2120
from lib.core.enums import EXPECTED
2221
from lib.core.exception import sqlmapNoneDataException
2322
from lib.request import inject
@@ -26,7 +25,7 @@
2625

2726
class Enumeration(GenericEnumeration):
2827
def __init__(self):
29-
GenericEnumeration.__init__(self, DBMS.MSSQL)
28+
GenericEnumeration.__init__(self)
3029

3130
def getPrivileges(self, *args):
3231
warnMsg = "on Microsoft SQL Server it is not possible to fetch "

0 commit comments

Comments
 (0)