mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-01-23 15:54:24 +03:00
Further dealing with time-based SQLi (Issue #1973)
This commit is contained in:
parent
09617c8243
commit
8994bf2dba
|
@ -74,6 +74,7 @@ from lib.core.settings import IDS_WAF_CHECK_RATIO
|
||||||
from lib.core.settings import IDS_WAF_CHECK_TIMEOUT
|
from lib.core.settings import IDS_WAF_CHECK_TIMEOUT
|
||||||
from lib.core.settings import MAX_DIFFLIB_SEQUENCE_LENGTH
|
from lib.core.settings import MAX_DIFFLIB_SEQUENCE_LENGTH
|
||||||
from lib.core.settings import NON_SQLI_CHECK_PREFIX_SUFFIX_LENGTH
|
from lib.core.settings import NON_SQLI_CHECK_PREFIX_SUFFIX_LENGTH
|
||||||
|
from lib.core.settings import SLEEP_TIME_MARKER
|
||||||
from lib.core.settings import SUHOSIN_MAX_VALUE_LENGTH
|
from lib.core.settings import SUHOSIN_MAX_VALUE_LENGTH
|
||||||
from lib.core.settings import SUPPORTED_DBMS
|
from lib.core.settings import SUPPORTED_DBMS
|
||||||
from lib.core.settings import URI_HTTP_HEADER
|
from lib.core.settings import URI_HTTP_HEADER
|
||||||
|
@ -560,6 +561,12 @@ def checkSqlInjection(place, parameter, value):
|
||||||
trueCode = threadData.lastCode
|
trueCode = threadData.lastCode
|
||||||
|
|
||||||
if trueResult:
|
if trueResult:
|
||||||
|
# Just extra validation step (e.g. to check for dropping protection mechanisms)
|
||||||
|
if SLEEP_TIME_MARKER in reqPayload:
|
||||||
|
falseResult = Request.queryPage(reqPayload.replace(SLEEP_TIME_MARKER, "0"), place, timeBasedCompare=True, raise404=False)
|
||||||
|
if falseResult:
|
||||||
|
continue
|
||||||
|
|
||||||
# Confirm test's results
|
# Confirm test's results
|
||||||
trueResult = Request.queryPage(reqPayload, place, timeBasedCompare=True, raise404=False)
|
trueResult = Request.queryPage(reqPayload, place, timeBasedCompare=True, raise404=False)
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ from lib.core.settings import GENERIC_SQL_COMMENT
|
||||||
from lib.core.settings import NULL
|
from lib.core.settings import NULL
|
||||||
from lib.core.settings import PAYLOAD_DELIMITER
|
from lib.core.settings import PAYLOAD_DELIMITER
|
||||||
from lib.core.settings import REPLACEMENT_MARKER
|
from lib.core.settings import REPLACEMENT_MARKER
|
||||||
|
from lib.core.settings import SLEEP_TIME_MARKER
|
||||||
from lib.core.unescaper import unescaper
|
from lib.core.unescaper import unescaper
|
||||||
|
|
||||||
class Agent(object):
|
class Agent(object):
|
||||||
|
@ -343,7 +344,7 @@ class Agent(object):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if payload:
|
if payload:
|
||||||
payload = payload.replace("[SLEEPTIME]", str(conf.timeSec))
|
payload = payload.replace(SLEEP_TIME_MARKER, str(conf.timeSec))
|
||||||
|
|
||||||
return payload
|
return payload
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ from lib.core.enums import OS
|
||||||
from lib.core.revision import getRevisionNumber
|
from lib.core.revision import getRevisionNumber
|
||||||
|
|
||||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
||||||
VERSION = "1.0.9.36"
|
VERSION = "1.0.9.37"
|
||||||
REVISION = getRevisionNumber()
|
REVISION = getRevisionNumber()
|
||||||
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
||||||
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
||||||
|
@ -65,6 +65,7 @@ BOUNDED_INJECTION_MARKER = "__BOUNDED_INJECTION_MARK__"
|
||||||
|
|
||||||
RANDOM_INTEGER_MARKER = "[RANDINT]"
|
RANDOM_INTEGER_MARKER = "[RANDINT]"
|
||||||
RANDOM_STRING_MARKER = "[RANDSTR]"
|
RANDOM_STRING_MARKER = "[RANDSTR]"
|
||||||
|
SLEEP_TIME_MARKER = "[SLEEPTIME]"
|
||||||
|
|
||||||
PAYLOAD_DELIMITER = "__PAYLOAD_DELIMITER__"
|
PAYLOAD_DELIMITER = "__PAYLOAD_DELIMITER__"
|
||||||
CHAR_INFERENCE_MARK = "%c"
|
CHAR_INFERENCE_MARK = "%c"
|
||||||
|
|
|
@ -20,11 +20,11 @@ b46521e29ea3d813bab5aeb16cac6498 extra/shutils/duplicates.py
|
||||||
cc9c82cfffd8ee9b25ba3af6284f057e extra/sqlharvest/__init__.py
|
cc9c82cfffd8ee9b25ba3af6284f057e extra/sqlharvest/__init__.py
|
||||||
4f2f817596540d82f9fcc0c5b2228beb extra/sqlharvest/sqlharvest.py
|
4f2f817596540d82f9fcc0c5b2228beb extra/sqlharvest/sqlharvest.py
|
||||||
2daa39e4d59526acb4772b6c47eb315f lib/controller/action.py
|
2daa39e4d59526acb4772b6c47eb315f lib/controller/action.py
|
||||||
af33b6f729a33235d0230e7b9af6b9cb lib/controller/checks.py
|
e2be5a4d5fd7587a78fa15a52fa58f32 lib/controller/checks.py
|
||||||
7c5ba631796f12d6de9b667e4cc7812b lib/controller/controller.py
|
7c5ba631796f12d6de9b667e4cc7812b lib/controller/controller.py
|
||||||
0a64305c3b3a01a2fc3a5e6204f442f1 lib/controller/handler.py
|
0a64305c3b3a01a2fc3a5e6204f442f1 lib/controller/handler.py
|
||||||
cc9c82cfffd8ee9b25ba3af6284f057e lib/controller/__init__.py
|
cc9c82cfffd8ee9b25ba3af6284f057e lib/controller/__init__.py
|
||||||
ed9303846f0bc63a9c518a7164301f80 lib/core/agent.py
|
a5d4c84e40ac170615ee7e05e770e7c2 lib/core/agent.py
|
||||||
eb0bd28b0bd9fbf67dcc3119116df377 lib/core/bigarray.py
|
eb0bd28b0bd9fbf67dcc3119116df377 lib/core/bigarray.py
|
||||||
33b28a65ab1a9467203f63d798fd9ddf lib/core/common.py
|
33b28a65ab1a9467203f63d798fd9ddf lib/core/common.py
|
||||||
5680d0c446a3bed5c0f2a0402d031557 lib/core/convert.py
|
5680d0c446a3bed5c0f2a0402d031557 lib/core/convert.py
|
||||||
|
@ -45,7 +45,7 @@ e60456db5380840a586654344003d4e6 lib/core/readlineng.py
|
||||||
5ef56abb8671c2ca6ceecb208258e360 lib/core/replication.py
|
5ef56abb8671c2ca6ceecb208258e360 lib/core/replication.py
|
||||||
99a2b496b9d5b546b335653ca801153f lib/core/revision.py
|
99a2b496b9d5b546b335653ca801153f lib/core/revision.py
|
||||||
7c15dd2777af4dac2c89cab6df17462e lib/core/session.py
|
7c15dd2777af4dac2c89cab6df17462e lib/core/session.py
|
||||||
c007f8f0c5f3d8f7b801f33d0ec58448 lib/core/settings.py
|
5ea71214107e2dc870a14ca2f90e9b49 lib/core/settings.py
|
||||||
7af83e4f18cab6dff5e67840eb65be80 lib/core/shell.py
|
7af83e4f18cab6dff5e67840eb65be80 lib/core/shell.py
|
||||||
23657cd7d924e3c6d225719865855827 lib/core/subprocessng.py
|
23657cd7d924e3c6d225719865855827 lib/core/subprocessng.py
|
||||||
0bc2fae1dec18cdd11954b22358293f2 lib/core/target.py
|
0bc2fae1dec18cdd11954b22358293f2 lib/core/target.py
|
||||||
|
|
Loading…
Reference in New Issue
Block a user