|
10 | 10 | from lib.core.common import Backend |
11 | 11 | from lib.core.common import Format |
12 | 12 | from lib.core.common import getUnicode |
| 13 | +from lib.core.common import hashDBRetrieve |
| 14 | +from lib.core.common import hashDBWrite |
13 | 15 | from lib.core.data import conf |
14 | 16 | from lib.core.data import kb |
15 | 17 | from lib.core.data import logger |
16 | 18 | from lib.core.enums import DBMS |
| 19 | +from lib.core.enums import HASHDB_KEYS |
17 | 20 | from lib.core.enums import OS |
18 | 21 | from lib.core.session import setDbms |
19 | 22 | from lib.core.settings import MYSQL_ALIASES |
@@ -103,8 +106,9 @@ def getFingerprint(self): |
103 | 106 | value += "back-end DBMS: " |
104 | 107 | actVer = Format.getDbms() |
105 | 108 |
|
106 | | - if inject.checkBooleanExpression("@@USERSTAT LIKE @@USERSTAT"): |
107 | | - actVer += " (MariaDB fork)" |
| 109 | + _ = hashDBRetrieve(HASHDB_KEYS.DBMS_FORK) |
| 110 | + if _: |
| 111 | + actVer += " (%s fork)" % _ |
108 | 112 |
|
109 | 113 | if not conf.extensiveFp: |
110 | 114 | value += actVer |
@@ -180,6 +184,9 @@ def checkDbms(self): |
180 | 184 |
|
181 | 185 | return False |
182 | 186 |
|
| 187 | + if hashDBRetrieve(HASHDB_KEYS.DBMS_FORK) is None: |
| 188 | + hashDBWrite(HASHDB_KEYS.DBMS_FORK, inject.checkBooleanExpression("@@USERSTAT LIKE @@USERSTAT") and "MariaDB" or "") |
| 189 | + |
183 | 190 | # reading information_schema on some platforms is causing annoying timeout exits |
184 | 191 | # Reference: http://bugs.mysql.com/bug.php?id=15855 |
185 | 192 |
|
|
0 commit comments