mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-07-12 09:12:26 +03:00
Proper form for excluded case in escaper
This commit is contained in:
parent
d8dd37510c
commit
54ca69fa90
|
@ -20,7 +20,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.61"
|
VERSION = "1.0.10.0"
|
||||||
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}
|
||||||
|
@ -374,7 +374,7 @@ MIN_ERROR_CHUNK_LENGTH = 8
|
||||||
MAX_ERROR_CHUNK_LENGTH = 1024
|
MAX_ERROR_CHUNK_LENGTH = 1024
|
||||||
|
|
||||||
# Do not escape the injected statement if it contains any of the following SQL keywords
|
# Do not escape the injected statement if it contains any of the following SQL keywords
|
||||||
EXCLUDE_UNESCAPE = ("WAITFOR DELAY ", " INTO DUMPFILE ", " INTO OUTFILE ", "CREATE ", "BULK ", "EXEC ", "RECONFIGURE ", "DECLARE ", "'%s'" % CHAR_INFERENCE_MARK)
|
EXCLUDE_UNESCAPE = ("WAITFOR DELAY ", " INTO DUMPFILE ", " INTO OUTFILE ", "CREATE ", "BULK ", "EXEC ", "RECONFIGURE ", "DECLARE ", "DBINFO(", "'%s'" % CHAR_INFERENCE_MARK)
|
||||||
|
|
||||||
# Mark used for replacement of reflected values
|
# Mark used for replacement of reflected values
|
||||||
REFLECTED_VALUE_MARKER = "__REFLECTED_VALUE__"
|
REFLECTED_VALUE_MARKER = "__REFLECTED_VALUE__"
|
||||||
|
|
|
@ -5,9 +5,6 @@ Copyright (c) 2006-2016 sqlmap developers (http://sqlmap.org/)
|
||||||
See the file 'doc/COPYING' for copying permission
|
See the file 'doc/COPYING' for copying permission
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import re
|
|
||||||
|
|
||||||
from lib.core.common import randomStr
|
|
||||||
from plugins.generic.syntax import Syntax as GenericSyntax
|
from plugins.generic.syntax import Syntax as GenericSyntax
|
||||||
|
|
||||||
class Syntax(GenericSyntax):
|
class Syntax(GenericSyntax):
|
||||||
|
@ -24,14 +21,4 @@ class Syntax(GenericSyntax):
|
||||||
def escaper(value):
|
def escaper(value):
|
||||||
return "||".join("CHR(%d)" % ord(_) for _ in value)
|
return "||".join("CHR(%d)" % ord(_) for _ in value)
|
||||||
|
|
||||||
excluded = {}
|
return Syntax._escape(expression, quote, escaper)
|
||||||
for _ in re.findall(r"DBINFO\([^)]+\)", expression):
|
|
||||||
excluded[_] = randomStr()
|
|
||||||
expression = expression.replace(_, excluded[_])
|
|
||||||
|
|
||||||
retVal = Syntax._escape(expression, quote, escaper)
|
|
||||||
|
|
||||||
for _ in excluded.items():
|
|
||||||
retVal = retVal.replace(_[1], _[0])
|
|
||||||
|
|
||||||
return retVal
|
|
||||||
|
|
|
@ -39,13 +39,13 @@ e4aec2b11c1ad6039d0c3dbbfbc5eb1a lib/core/exception.py
|
||||||
cc9c82cfffd8ee9b25ba3af6284f057e lib/core/__init__.py
|
cc9c82cfffd8ee9b25ba3af6284f057e lib/core/__init__.py
|
||||||
91c514013daa796e2cdd940389354eac lib/core/log.py
|
91c514013daa796e2cdd940389354eac lib/core/log.py
|
||||||
5b079749c50240602ea92637e268ed31 lib/core/optiondict.py
|
5b079749c50240602ea92637e268ed31 lib/core/optiondict.py
|
||||||
c3bcfb12b2dc7f6eb23f46d020faf580 lib/core/option.py
|
16d9e1100189966d8a2224d23fcd2ca2 lib/core/option.py
|
||||||
1e8948dddbd12def5c2af52530738059 lib/core/profiling.py
|
1e8948dddbd12def5c2af52530738059 lib/core/profiling.py
|
||||||
e60456db5380840a586654344003d4e6 lib/core/readlineng.py
|
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
|
||||||
301f39ba100694664d23d315551e12fd lib/core/settings.py
|
1d029b393fe525c9ad1ecac20b064ca5 lib/core/settings.py
|
||||||
7af83e4f18cab6dff5e67840eb65be80 lib/core/shell.py
|
7af83e4f18cab6dff5e67840eb65be80 lib/core/shell.py
|
||||||
23657cd7d924e3c6d225719865855827 lib/core/subprocessng.py
|
23657cd7d924e3c6d225719865855827 lib/core/subprocessng.py
|
||||||
c3ace7874a536d801f308cf1fd03df99 lib/core/target.py
|
c3ace7874a536d801f308cf1fd03df99 lib/core/target.py
|
||||||
|
@ -148,7 +148,7 @@ d251aecff7544f79f78385386bb7fa35 plugins/dbms/informix/enumeration.py
|
||||||
e8f0f28da98020dce27970a50e10a23b plugins/dbms/informix/filesystem.py
|
e8f0f28da98020dce27970a50e10a23b plugins/dbms/informix/filesystem.py
|
||||||
89540595a6011b47629c68d11a5e4533 plugins/dbms/informix/fingerprint.py
|
89540595a6011b47629c68d11a5e4533 plugins/dbms/informix/fingerprint.py
|
||||||
99a77ad7aa7ca4a4b5981f2fa0d9c616 plugins/dbms/informix/__init__.py
|
99a77ad7aa7ca4a4b5981f2fa0d9c616 plugins/dbms/informix/__init__.py
|
||||||
e96b4721cfc65271a2de948c47474aaa plugins/dbms/informix/syntax.py
|
8300ca02ecf00d3b00d78ecde8a86c09 plugins/dbms/informix/syntax.py
|
||||||
5f130772d2295ae61140acba894eaceb plugins/dbms/informix/takeover.py
|
5f130772d2295ae61140acba894eaceb plugins/dbms/informix/takeover.py
|
||||||
cc9c82cfffd8ee9b25ba3af6284f057e plugins/dbms/__init__.py
|
cc9c82cfffd8ee9b25ba3af6284f057e plugins/dbms/__init__.py
|
||||||
4c8667e8af763ddf82ee314c6681d4e1 plugins/dbms/maxdb/connector.py
|
4c8667e8af763ddf82ee314c6681d4e1 plugins/dbms/maxdb/connector.py
|
||||||
|
|
Loading…
Reference in New Issue
Block a user