77
88from lib .core .common import Backend
99from lib .core .common import Format
10+ from lib .core .common import hashDBRetrieve
11+ from lib .core .common import hashDBWrite
1012from lib .core .data import conf
1113from lib .core .data import kb
1214from lib .core .data import logger
1315from lib .core .enums import DBMS
16+ from lib .core .enums import FORK
17+ from lib .core .enums import HASHDB_KEYS
1418from lib .core .enums import OS
1519from lib .core .session import setDbms
1620from lib .core .settings import PGSQL_ALIASES
@@ -22,6 +26,12 @@ def __init__(self):
2226 GenericFingerprint .__init__ (self , DBMS .PGSQL )
2327
2428 def getFingerprint (self ):
29+ fork = hashDBRetrieve (HASHDB_KEYS .DBMS_FORK )
30+
31+ if fork is None :
32+ fork = inject .checkBooleanExpression ("VERSION() LIKE '%CockroachDB%'" ) and FORK .COCKROACHDB or ""
33+ hashDBWrite (HASHDB_KEYS .DBMS_FORK , fork )
34+
2535 value = ""
2636 wsOsFp = Format .getOs ("web server" , kb .headersFp )
2737
@@ -38,6 +48,8 @@ def getFingerprint(self):
3848
3949 if not conf .extensiveFp :
4050 value += DBMS .PGSQL
51+ if fork :
52+ value += " (%s fork)" % fork
4153 return value
4254
4355 actVer = Format .getDbms ()
@@ -56,6 +68,9 @@ def getFingerprint(self):
5668 if htmlErrorFp :
5769 value += "\n %shtml error message fingerprint: %s" % (blank , htmlErrorFp )
5870
71+ if fork :
72+ value += "\n %sfork fingerprint: %s" % (blank , fork )
73+
5974 return value
6075
6176 def checkDbms (self ):
0 commit comments