added support for fingerprinting SAP MaxDB (Issue 143)

This commit is contained in:
Miroslav Stampar
2010-08-30 13:29:19 +00:00
parent 7a7938a6da
commit 48cc87f6a9
13 changed files with 481 additions and 22 deletions

View File

@@ -91,7 +91,7 @@ class Fingerprint(GenericFingerprint):
("2.0", [" AND EXISTS(SELECT CURRENT_TIME(0) FROM RDB$DATABASE)", " AND BIT_LENGTH(%d)>0", " AND CHAR_LENGTH(%d)>0"]),
("2.1", [" AND BIN_XOR(%d,%d)=0", " AND PI()>0.%d", " AND RAND()<1.%d", " AND FLOOR(1.%d)>=0"])
)
for i in xrange(len(table)):
version, checks = table[i]
failed = False
@@ -105,7 +105,7 @@ class Fingerprint(GenericFingerprint):
break
if failed:
break
return retVal
def __dialectCheck(self):
@@ -115,7 +115,7 @@ class Fingerprint(GenericFingerprint):
result = Request.queryPage(payload)
retVal = "dialect 3" if result else "dialect 1"
return retVal
def checkDbms(self):
if conf.dbms in FIREBIRD_ALIASES:
setDbms("Firebird")
@@ -127,7 +127,7 @@ class Fingerprint(GenericFingerprint):
logMsg = "testing Firebird"
logger.info(logMsg)
randInt = randomInt()
payload = agent.fullPayload(" AND EXISTS(SELECT * FROM RDB$DATABASE WHERE %d=%d)" % (randInt, randInt))