diff --git a/lib/techniques/blind/inference.py b/lib/techniques/blind/inference.py index 4fd99bbb3..4291f4c7c 100644 --- a/lib/techniques/blind/inference.py +++ b/lib/techniques/blind/inference.py @@ -496,7 +496,6 @@ def bisection(payload, expression, length=None, charsetType=None, firstChar=None dataToStdout(filterControlChars(commonValue[index - 1:])) finalValue = commonValue - break # If there is a common pattern starting with partialValue, @@ -529,7 +528,7 @@ def bisection(payload, expression, length=None, charsetType=None, firstChar=None else: val = getChar(index, asciiTbl) - if val is None or (lastChar > 0 and index > lastChar): + if val is None: finalValue = partialValue break @@ -548,6 +547,12 @@ def bisection(payload, expression, length=None, charsetType=None, firstChar=None finalValue = partialValue[:-INFERENCE_BLANK_BREAK] break + if (lastChar > 0 and index >= lastChar): + finalValue = "" if length == 0 else partialValue + finalValue = finalValue.rstrip() if len(finalValue) > 1 else finalValue + partialValue = None + break + except KeyboardInterrupt: abortedFlag = True finally: