@@ -274,9 +274,11 @@ def getChar(idx, charTbl=None, continuousOrder=True, expand=charsetType is None,
274274
275275 originalTbl = type (charTbl )(charTbl )
276276
277- if continuousOrder and shiftTable is None :
277+ if kb .disableShiftTable :
278+ shiftTable = None
279+ elif continuousOrder and shiftTable is None :
278280 # Used for gradual expanding into unicode charspace
279- shiftTable = [2 , 2 , 3 , 3 , 5 , 4 ]
281+ shiftTable = [2 , 2 , 3 , 3 , 3 ]
280282
281283 if "'%s'" % CHAR_INFERENCE_MARK in payload :
282284 for char in ('\n ' , '\r ' ):
@@ -358,6 +360,7 @@ def getChar(idx, charTbl=None, continuousOrder=True, expand=charsetType is None,
358360 kb .responseTimePayload = None
359361
360362 result = Request .queryPage (forgedPayload , timeBasedCompare = timeBasedCompare , raise404 = False )
363+
361364 incrementCounter (getTechnique ())
362365
363366 if not timeBasedCompare and getTechniqueData () is not None :
@@ -405,6 +408,7 @@ def getChar(idx, charTbl=None, continuousOrder=True, expand=charsetType is None,
405408 maxChar = maxValue = charTbl [- 1 ]
406409 minValue = charTbl [0 ]
407410 else :
411+ kb .disableShiftTable = True
408412 return None
409413 else :
410414 retVal = minValue + 1
0 commit comments