From a35d1e537337e140130b14b397a2efbbf04d2e4a Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Tue, 14 Feb 2017 13:14:35 +0100 Subject: [PATCH] Minor patch related to the email from ML --- lib/core/common.py | 7 +++++-- lib/core/settings.py | 2 +- lib/parse/cmdline.py | 3 +++ lib/request/connect.py | 2 +- txt/checksum.md5 | 8 ++++---- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/core/common.py b/lib/core/common.py index da9e15aab..b20b4c423 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -2345,7 +2345,7 @@ def wasLastResponseDelayed(): deviation = stdev(kb.responseTimes.get(kb.responseTimeMode, [])) threadData = getCurrentThreadData() - if deviation and not conf.direct: + if deviation and not conf.direct and not conf.disableStats: if len(kb.responseTimes[kb.responseTimeMode]) < MIN_TIME_RESPONSES: warnMsg = "time-based standard deviation method used on a model " warnMsg += "with less than %d response times" % MIN_TIME_RESPONSES @@ -2365,7 +2365,10 @@ def wasLastResponseDelayed(): return retVal else: - return (threadData.lastQueryDuration - conf.timeSec) >= 0 + delta = threadData.lastQueryDuration - conf.timeSec + if Backend.getIdentifiedDbms() in (DBMS.MYSQL,): # MySQL's SLEEP(X) lasts 0.05 seconds shorter on average + delta += 0.05 + return delta >= 0 def adjustTimeDelay(lastQueryDuration, lowerStdLimit): """ diff --git a/lib/core/settings.py b/lib/core/settings.py index d82c142d2..af8237504 100755 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -19,7 +19,7 @@ from lib.core.enums import DBMS_DIRECTORY_NAME from lib.core.enums import OS # sqlmap version (...) -VERSION = "1.1.2.5" +VERSION = "1.1.2.6" 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/parse/cmdline.py b/lib/parse/cmdline.py index 1a4a05a3e..1e4c90858 100644 --- a/lib/parse/cmdline.py +++ b/lib/parse/cmdline.py @@ -777,6 +777,9 @@ def cmdLineParser(argv=None): parser.add_option("--disable-precon", dest="disablePrecon", action="store_true", help=SUPPRESS_HELP) + parser.add_option("--disable-stats", dest="disableStats", action="store_true", + help=SUPPRESS_HELP) + parser.add_option("--profile", dest="profile", action="store_true", help=SUPPRESS_HELP) diff --git a/lib/request/connect.py b/lib/request/connect.py index 01b614e7c..5ea9bf837 100644 --- a/lib/request/connect.py +++ b/lib/request/connect.py @@ -1080,7 +1080,7 @@ class Connect(object): elif kb.postUrlEncode: post = urlencode(post, spaceplus=kb.postSpaceToPlus) - if timeBasedCompare: + if timeBasedCompare and not conf.disableStats: if len(kb.responseTimes.get(kb.responseTimeMode, [])) < MIN_TIME_RESPONSES: clearConsoleLine() diff --git a/txt/checksum.md5 b/txt/checksum.md5 index b139a1ffb..37ca96bae 100644 --- a/txt/checksum.md5 +++ b/txt/checksum.md5 @@ -26,7 +26,7 @@ b3eec7f44bcc5d784d171a187b7fe8cb lib/controller/handler.py 310efc965c862cfbd7b0da5150a5ad36 lib/controller/__init__.py 19905ecb4437b94512cf21d5f1720091 lib/core/agent.py 6cc95a117fbd34ef31b9aa25520f0e31 lib/core/bigarray.py -15c19630897cff73744fb2866719d1e9 lib/core/common.py +a64af9f1242d0d3aa1b7d19293de2fd5 lib/core/common.py 5065a4242a8cccf72f91e22e1007ae63 lib/core/convert.py a8143dab9d3a27490f7d49b6b29ea530 lib/core/data.py 7936d78b1a7f1f008ff92bf2f88574ba lib/core/datatype.py @@ -45,7 +45,7 @@ e544108e2238d756c94a240e8a1ce061 lib/core/optiondict.py d8e9250f3775119df07e9070eddccd16 lib/core/replication.py 785f86e3f963fa3798f84286a4e83ff2 lib/core/revision.py 40c80b28b3a5819b737a5a17d4565ae9 lib/core/session.py -08cbff7b1cc2c2ed3eb38ba992510e9c lib/core/settings.py +ab0f0f7f1e982544f72eca4424d93357 lib/core/settings.py d91291997d2bd2f6028aaf371bf1d3b6 lib/core/shell.py 2ad85c130cc5f2b3701ea85c2f6bbf20 lib/core/subprocessng.py afd0636d2e93c23f4f0a5c9b6023ea17 lib/core/target.py @@ -56,7 +56,7 @@ ad74fc58fc7214802fd27067bce18dd2 lib/core/unescaper.py 4d13ed693401a498b6d073a2a494bd83 lib/core/wordlist.py 310efc965c862cfbd7b0da5150a5ad36 lib/__init__.py 8c4b04062db2245d9e190b413985202a lib/parse/banner.py -9b12924e9da625f97b7ec87773214000 lib/parse/cmdline.py +0fdb733d3f116b01cd2709b3980aa892 lib/parse/cmdline.py 3a31657bc38f277d0016ff6d50bde61f lib/parse/configfile.py 14539f1be714d4f1ed042067d63bc50a lib/parse/handler.py 64e5bb3ecbdd75144500588b437ba8da lib/parse/headers.py @@ -67,7 +67,7 @@ a0444cc351cd6d29015ad16d9eb46ff4 lib/parse/sitemap.py 403d873f1d2fd0c7f73d83f104e41850 lib/request/basicauthhandler.py 6d04ee525e75bf0082e9f1f6d8506546 lib/request/basic.py ef48de622b0a6b4a71df64b0d2785ef8 lib/request/comparison.py -49f8ee7010c2d22ed06631fa70a513f5 lib/request/connect.py +d57655ea924108989a235a7fa02a45f0 lib/request/connect.py fb6b788d0016ab4ec5e5f661f0f702ad lib/request/direct.py cc1163d38e9b7ee5db2adac6784c02bb lib/request/dns.py 5dcdb37823a0b5eff65cd1018bcf09e4 lib/request/httpshandler.py