diff --git a/lib/core/settings.py b/lib/core/settings.py index ea7d8d039..ef951e649 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -20,7 +20,7 @@ from lib.core.enums import OS from thirdparty import six # sqlmap version (...) -VERSION = "1.10.7.137" +VERSION = "1.10.7.138" TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE) diff --git a/lib/request/connect.py b/lib/request/connect.py index b39e456ec..ca94c570a 100644 --- a/lib/request/connect.py +++ b/lib/request/connect.py @@ -544,7 +544,13 @@ class Connect(object): break else: for i in xrange(max(1, kb.webSocketRecvCount)): - _page.append(ws.recv()) + # Note: a later response may carry fewer frames than the calibration one + # (e.g. a FALSE boolean-blind reply); stop on timeout instead of letting it + # bubble up as a failed request, mirroring the initial recv loop above + try: + _page.append(ws.recv()) + except websocket.WebSocketTimeoutException: + break page = "\n".join(_page) finally: