From 0b24a80387ac073ace390bd2695b2dae744701b2 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Wed, 20 Dec 2017 14:51:15 +0100 Subject: [PATCH] Patch related to the --hex and --technique=E (potential patch for #2837) --- lib/core/agent.py | 2 +- lib/core/settings.py | 2 +- lib/techniques/error/use.py | 5 ++++- txt/checksum.md5 | 6 +++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/core/agent.py b/lib/core/agent.py index 85653786e..63f899d1e 100644 --- a/lib/core/agent.py +++ b/lib/core/agent.py @@ -362,7 +362,7 @@ class Agent(object): rootQuery = queries[Backend.getIdentifiedDbms()] hexField = field - if 'hex' in rootQuery: + if "hex" in rootQuery: hexField = rootQuery.hex.query % field else: warnMsg = "switch '--hex' is currently not supported on DBMS %s" % Backend.getIdentifiedDbms() diff --git a/lib/core/settings.py b/lib/core/settings.py index c4e6e61f7..b96bc727e 100644 --- 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.12.23" +VERSION = "1.1.12.24" 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/techniques/error/use.py b/lib/techniques/error/use.py index c02d4732c..68f59b69e 100644 --- a/lib/techniques/error/use.py +++ b/lib/techniques/error/use.py @@ -76,7 +76,10 @@ def _oneShotErrorUse(expression, field=None, chunkTest=False): current = MAX_ERROR_CHUNK_LENGTH while current >= MIN_ERROR_CHUNK_LENGTH: testChar = str(current % 10) - testQuery = "SELECT %s('%s',%d)" % ("REPEAT" if Backend.isDbms(DBMS.MYSQL) else "REPLICATE", testChar, current) + + testQuery = "%s('%s',%d)" % ("REPEAT" if Backend.isDbms(DBMS.MYSQL) else "REPLICATE", testChar, current) + testQuery = "SELECT %s" % (agent.hexConvertField(testQuery) if conf.hexConvert else testQuery) + result = unArrayizeValue(_oneShotErrorUse(testQuery, chunkTest=True)) if (result or "").startswith(testChar): diff --git a/txt/checksum.md5 b/txt/checksum.md5 index 03031cf43..83174b84e 100644 --- a/txt/checksum.md5 +++ b/txt/checksum.md5 @@ -25,7 +25,7 @@ f96467fc5cd1d87f52dd7966c8ae6e79 extra/shutils/regressiontest.py 2db2666dba713c710d248a62b2c1c1fe lib/controller/controller.py d2cdb9e832e18a81e936ca3348144b16 lib/controller/handler.py 5fb9aaf874daa47ea2b672a22740e56b lib/controller/__init__.py -f8a7165253874a9ce0c6e0d089e5fb8c lib/core/agent.py +367c522e9b2ea0cf585c733efa4f961f lib/core/agent.py 9eccf8db8b8e259e30c1eade4ee499b0 lib/core/bigarray.py 4c384d4c5af98c12f1dcc7eaa7fb3886 lib/core/common.py 5c918135b3776bb129edbfdd422ece1b lib/core/convert.py @@ -46,7 +46,7 @@ f872699e948d0692ce11b54781da814c lib/core/log.py 760d9df2a27ded29109b390ab202e72d lib/core/replication.py a2466b62e67f8b31736bac4dac590e51 lib/core/revision.py 02d4762140a72fd44668d3dab5eabda9 lib/core/session.py -6a479a09009bb22a017444abed859676 lib/core/settings.py +29c0daff930defef7790fcd2bdf3baea lib/core/settings.py 35bffbad762eb9e03db9e93b1c991103 lib/core/shell.py a59ec28371ae067a6fdd8f810edbee3d lib/core/subprocessng.py d93501771b41315f9fb949305b6ed257 lib/core/target.py @@ -93,7 +93,7 @@ d3080bf68b4b85ed2c98af5de74e8b73 lib/takeover/xp_cmdshell.py 95331b2826f28db9ff962670391aa7d6 lib/techniques/dns/test.py 82cc907fb335250703072337d8f8cceb lib/techniques/dns/use.py 5fb9aaf874daa47ea2b672a22740e56b lib/techniques/error/__init__.py -6ac0636513e7e009034fec33d6a6af7e lib/techniques/error/use.py +94f73c6912d33e284a9b60ca83b05410 lib/techniques/error/use.py 5fb9aaf874daa47ea2b672a22740e56b lib/techniques/__init__.py 5fb9aaf874daa47ea2b672a22740e56b lib/techniques/union/__init__.py c2cb66245088e6b020bd398cbb6cd2ff lib/techniques/union/test.py