File tree Expand file tree Collapse file tree 3 files changed +19
-2
lines changed Expand file tree Collapse file tree 3 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -1431,6 +1431,19 @@ def cleanQuery(query):
1431
1431
1432
1432
return retVal
1433
1433
1434
+ def cleanReplaceUnicode (value ):
1435
+ """
1436
+ Cleans unicode for proper encode/decode
1437
+
1438
+ >>> cleanReplaceUnicode(['a', 'b'])
1439
+ ['a', 'b']
1440
+ """
1441
+
1442
+ def clean (value ):
1443
+ return value .encode (UNICODE_ENCODING , errors = "replace" ).decode (UNICODE_ENCODING ) if isinstance (value , six .text_type ) else value
1444
+
1445
+ return applyFunctionRecursively (value , clean )
1446
+
1434
1447
def setPaths (rootPath ):
1435
1448
"""
1436
1449
Sets absolute paths for project directories and files
Original file line number Diff line number Diff line change 7
7
8
8
import sqlite3
9
9
10
+ from lib .core .common import cleanReplaceUnicode
10
11
from lib .core .common import getSafeExString
11
12
from lib .core .common import unsafeSQLIdentificatorNaming
12
13
from lib .core .exception import SqlmapConnectionException
@@ -81,7 +82,10 @@ def insert(self, values):
81
82
82
83
def execute (self , sql , parameters = None ):
83
84
try :
84
- self .parent .cursor .execute (sql , parameters or [])
85
+ try :
86
+ self .parent .cursor .execute (sql , parameters or [])
87
+ except UnicodeError :
88
+ self .parent .cursor .execute (sql , cleanReplaceUnicode (parameters or []))
85
89
except sqlite3 .OperationalError as ex :
86
90
errMsg = "problem occurred ('%s') while accessing sqlite database " % getSafeExString (ex , UNICODE_ENCODING )
87
91
errMsg += "located at '%s'. Please make sure that " % self .parent .dbpath
Original file line number Diff line number Diff line change 20
20
from thirdparty .six import unichr as _unichr
21
21
22
22
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
23
- VERSION = "1.5.10.17 "
23
+ VERSION = "1.5.10.18 "
24
24
TYPE = "dev" if VERSION .count ('.' ) > 2 and VERSION .split ('.' )[- 1 ] != '0' else "stable"
25
25
TYPE_COLORS = {"dev" : 33 , "stable" : 90 , "pip" : 34 }
26
26
VERSION_STRING = "sqlmap/%s#%s" % ('.' .join (VERSION .split ('.' )[:- 1 ]) if VERSION .count ('.' ) > 2 and VERSION .split ('.' )[- 1 ] == '0' else VERSION , TYPE )
You can’t perform that action at this time.
0 commit comments