@@ -128,6 +128,7 @@ def setUp(self):
128128 "forceWhere" : kb .get ("forceWhere" ), "technique" : kb .get ("technique" ),
129129 "inj" : (kb .injection .place , kb .injection .parameter , kb .injection .data ),
130130 "qp" : Connect .queryPage ,
131+ "dbmsHandler" : conf .get ("dbmsHandler" ), "forceDbms" : conf .get ("forceDbms" ),
131132 }
132133 conf .hexConvert = False
133134 conf .charset = None
@@ -141,6 +142,11 @@ def setUp(self):
141142 kb .injection .parameter = "id"
142143 kb .technique = PAYLOAD .TECHNIQUE .ERROR
143144 kb .injection .data = {PAYLOAD .TECHNIQUE .ERROR : _make_vector ()}
145+ # With testMode=False, getIdentifiedDbms() prefers conf.dbmsHandler._dbms and conf.forceDbms
146+ # over the forced DBMS below; a leaked handler/option (e.g. MSSQL) would make the chunk-length
147+ # probe emit REPLICATE (not REPEAT) and the oracle mis-detect length 0. Clear both to isolate.
148+ conf .dbmsHandler = None
149+ conf .forceDbms = None
144150 set_dbms ("MySQL" )
145151
146152 def tearDown (self ):
@@ -157,6 +163,8 @@ def tearDown(self):
157163 kb .injection .place , kb .injection .parameter , kb .injection .data = self ._saved ["inj" ]
158164 Connect .queryPage = self ._saved ["qp" ]
159165 eu .Request .queryPage = self ._saved ["qp" ]
166+ conf .dbmsHandler = self ._saved ["dbmsHandler" ]
167+ conf .forceDbms = self ._saved ["forceDbms" ]
160168
161169 def _install_oracle (self , secret = "hello" ):
162170 cap = self .CAP
0 commit comments