mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2024-11-29 04:53:48 +03:00
Finally working inference against MySQL/international letters (even chinese)
This commit is contained in:
parent
0037d52098
commit
92e338251a
|
@ -2503,7 +2503,7 @@ def decodeIntToUnicode(value):
|
||||||
try:
|
try:
|
||||||
# http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_ord
|
# http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_ord
|
||||||
if Backend.getIdentifiedDbms() in (DBMS.MYSQL,):
|
if Backend.getIdentifiedDbms() in (DBMS.MYSQL,):
|
||||||
retVal = getUnicode(struct.pack('B' if value < 256 else '>H', value))
|
retVal = getUnicode(hexdecode(hex(value)))
|
||||||
elif value > 255:
|
elif value > 255:
|
||||||
retVal = unichr(value)
|
retVal = unichr(value)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -203,7 +203,7 @@ def bisection(payload, expression, length=None, charsetType=None, firstChar=None
|
||||||
|
|
||||||
if continuousOrder and shiftTable is None:
|
if continuousOrder and shiftTable is None:
|
||||||
# Used for gradual expanding into unicode charspace
|
# Used for gradual expanding into unicode charspace
|
||||||
shiftTable = [5, 4]
|
shiftTable = [2, 2, 3, 3, 5, 4]
|
||||||
|
|
||||||
if CHAR_INFERENCE_MARK in payload and ord('\n') in charTbl:
|
if CHAR_INFERENCE_MARK in payload and ord('\n') in charTbl:
|
||||||
charTbl.remove(ord('\n'))
|
charTbl.remove(ord('\n'))
|
||||||
|
@ -263,7 +263,7 @@ def bisection(payload, expression, length=None, charsetType=None, firstChar=None
|
||||||
# Going beyond the original charset
|
# Going beyond the original charset
|
||||||
elif minValue == maxChar:
|
elif minValue == maxChar:
|
||||||
# If the original charTbl was [0,..,127] new one
|
# If the original charTbl was [0,..,127] new one
|
||||||
# will be [128,..,128*16-1] or from 128 to 2047
|
# will be [128,..,(128 << 4) - 1] or from 128 to 2047
|
||||||
# and instead of making a HUGE list with all the
|
# and instead of making a HUGE list with all the
|
||||||
# elements we use a xrange, which is a virtual
|
# elements we use a xrange, which is a virtual
|
||||||
# list
|
# list
|
||||||
|
|
Loading…
Reference in New Issue
Block a user