diff --git a/lib/core/option.py b/lib/core/option.py index cb51ee479..5ae0f5aca 100755 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -1863,6 +1863,7 @@ def _setKnowledgeBaseAttributes(flushAll=True): kb.authHeader = None kb.bannerFp = AttribDict() kb.binaryField = False + kb.browserVerification = None kb.brute = AttribDict({"tables": [], "columns": []}) kb.bruteMode = False diff --git a/lib/core/settings.py b/lib/core/settings.py index 9f1e6303c..1ff8b883a 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.6.5" +VERSION = "1.1.6.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/request/basic.py b/lib/request/basic.py index de6bdae5f..6e9d0e368 100644 --- a/lib/request/basic.py +++ b/lib/request/basic.py @@ -375,6 +375,13 @@ def processResponse(page, responseHeaders, status=None): conf.paramDict[PLACE.POST][name] = value conf.parameters[PLACE.POST] = re.sub("(?i)(%s=)[^&]+" % re.escape(name), r"\g<1>%s" % re.escape(value), conf.parameters[PLACE.POST]) + if not kb.browserVerification and re.search(r"(?i)browser.?verification", page or ""): + kb.browserVerification = True + warnMsg = "potential browser verification protection mechanism detected" + if re.search(r"(?i)CloudFlare", page): + warnMsg += " (CloudFlare)" + singleTimeWarnMessage(warnMsg) + if not kb.captchaDetected and re.search(r"(?i)captcha", page or ""): for match in re.finditer(r"(?si)", page): if re.search(r"(?i)captcha", match.group(0)): diff --git a/txt/checksum.md5 b/txt/checksum.md5 index 05d4f3717..2e011f854 100644 --- a/txt/checksum.md5 +++ b/txt/checksum.md5 @@ -40,13 +40,13 @@ b9ff4e622c416116bee6024c0f050349 lib/core/enums.py 310efc965c862cfbd7b0da5150a5ad36 lib/core/__init__.py 9ba39bf66e9ecd469446bdbbeda906c3 lib/core/log.py edcfce0850771e6454acef244d5c5760 lib/core/optiondict.py -a09c6ceee8dbb624cc3ca1d17749c8a5 lib/core/option.py +0ff0d360c02b4b92293aa7e5ee705d49 lib/core/option.py 5f2f56e6c5f274408df61943f1e080c0 lib/core/profiling.py 40be71cd774662a7b420caeb7051e7d5 lib/core/readlineng.py d8e9250f3775119df07e9070eddccd16 lib/core/replication.py 785f86e3f963fa3798f84286a4e83ff2 lib/core/revision.py 40c80b28b3a5819b737a5a17d4565ae9 lib/core/session.py -d556e1cf87bd101aa7f0a46fdbbbdff3 lib/core/settings.py +b1151afaf0f49ea541ff914956438100 lib/core/settings.py d91291997d2bd2f6028aaf371bf1d3b6 lib/core/shell.py 2ad85c130cc5f2b3701ea85c2f6bbf20 lib/core/subprocessng.py 8136241fdbdb99a5dc0e51ba72918f6e lib/core/target.py @@ -66,7 +66,7 @@ ad74fc58fc7214802fd27067bce18dd2 lib/core/unescaper.py 0b010b7cdb2e42b5aa0caa59607279ad lib/parse/payloads.py 997d0452e6fc22411f81a334511bcb3d lib/parse/sitemap.py 403d873f1d2fd0c7f73d83f104e41850 lib/request/basicauthhandler.py -86cb5ce3fa5530c255f4599bfc0cc4e2 lib/request/basic.py +7e77acc0e13a222a086dd052c52b1964 lib/request/basic.py ef48de622b0a6b4a71df64b0d2785ef8 lib/request/comparison.py a912b5148a089ec333cc9210d53235ea lib/request/connect.py fb6b788d0016ab4ec5e5f661f0f702ad lib/request/direct.py