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

Method checkDbms

plugins/dbms/informix/fingerprint.py:60–111  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

58 return value
59
60 def checkDbms(self):
61 if not conf.extensiveFp and Backend.isDbmsWithin(INFORMIX_ALIASES):
62 setDbms(DBMS.INFORMIX)
63
64 self.getBanner()
65
66 return True
67
68 infoMsg = "testing %s" % DBMS.INFORMIX
69 logger.info(infoMsg)
70
71 result = inject.checkBooleanExpression("[RANDNUM]=(SELECT [RANDNUM] FROM SYSMASTER:SYSDUAL)")
72
73 if result:
74 infoMsg = "confirming %s" % DBMS.INFORMIX
75 logger.info(infoMsg)
76
77 result = inject.checkBooleanExpression("(SELECT DBINFO('DBNAME') FROM SYSMASTER:SYSDUAL) IS NOT NULL")
78
79 if not result:
80 warnMsg = "the back-end DBMS is not %s" % DBMS.INFORMIX
81 logger.warning(warnMsg)
82
83 return False
84
85 # Determine if it is Informix >= 11.70
86 if inject.checkBooleanExpression("CHR(32)=' '"):
87 Backend.setVersion(">= 11.70")
88
89 setDbms(DBMS.INFORMIX)
90
91 self.getBanner()
92
93 if not conf.extensiveFp:
94 return True
95
96 infoMsg = "actively fingerprinting %s" % DBMS.INFORMIX
97 logger.info(infoMsg)
98
99 for version in ("14.1", "12.1", "11.7", "11.5", "10.0"):
100 output = inject.checkBooleanExpression("EXISTS(SELECT 1 FROM SYSMASTER:SYSDUAL WHERE DBINFO('VERSION,'FULL') LIKE '%%%s%%')" % version)
101
102 if output:
103 Backend.setVersion(version)
104 break
105
106 return True
107 else:
108 warnMsg = "the back-end DBMS is not %s" % DBMS.INFORMIX
109 logger.warning(warnMsg)
110
111 return False

Callers

nothing calls this directly

Calls 5

setDbmsFunction · 0.90
isDbmsWithinMethod · 0.80
infoMethod · 0.80
setVersionMethod · 0.80
getBannerMethod · 0.45

Tested by

no test coverage detected