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

Method _sysTablesCheck

plugins/dbms/firebird/fingerprint.py:71–97  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

69 return value
70
71 def _sysTablesCheck(self):
72 retVal = None
73 table = (
74 ("1.0", ("EXISTS(SELECT CURRENT_USER FROM RDB$DATABASE)",)),
75 ("1.5", ("NULLIF(%d,%d) IS NULL", "EXISTS(SELECT CURRENT_TRANSACTION FROM RDB$DATABASE)")),
76 ("2.0", ("EXISTS(SELECT CURRENT_TIME(0) FROM RDB$DATABASE)", "BIT_LENGTH(%d)>0", "CHAR_LENGTH(%d)>0")),
77 ("2.1", ("BIN_XOR(%d,%d)=0", "PI()>0.%d", "RAND()<1.%d", "FLOOR(1.%d)>=0")),
78 ("2.5", ("'%s' SIMILAR TO '%s'",)), # Reference: https://firebirdsql.org/refdocs/langrefupd25-similar-to.html
79 ("3.0", ("FALSE IS FALSE",)), # https://www.firebirdsql.org/file/community/conference-2014/pdf/02_fb.2014.whatsnew.30.en.pdf
80 )
81
82 for i in xrange(len(table)):
83 version, checks = table[i]
84 failed = False
85 check = checks[randomRange(0, len(checks) - 1)].replace("%d", getUnicode(randomRange(1, 100))).replace("%s", getUnicode(randomStr()))
86 result = inject.checkBooleanExpression(check)
87
88 if result:
89 retVal = version
90 else:
91 failed = True
92 break
93
94 if failed:
95 break
96
97 return retVal
98
99 def _dialectCheck(self):
100 retVal = None

Callers 1

checkDbmsMethod · 0.95

Calls 5

randomRangeFunction · 0.90
getUnicodeFunction · 0.90
randomStrFunction · 0.90
xrangeClass · 0.85
replaceMethod · 0.45

Tested by

no test coverage detected