Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3984b94

Browse files
committed
Fixes #3271
1 parent eba01ee commit 3984b94

8 files changed

Lines changed: 35 additions & 30 deletions

File tree

lib/core/common.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4727,6 +4727,8 @@ def getSafeExString(ex, encoding=None):
47274727
retVal = ex.message
47284728
elif getattr(ex, "msg", None):
47294729
retVal = ex.msg
4730+
elif isinstance(ex, (list, tuple)) and len(ex) > 1 and isinstance(ex[1], basestring):
4731+
retVal = ex[1]
47304732

47314733
return getUnicode(retVal or "", encoding=encoding).strip()
47324734

lib/core/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from lib.core.enums import OS
2020

2121
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
22-
VERSION = "1.2.10.9"
22+
VERSION = "1.2.10.10"
2323
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
2424
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
2525
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)

plugins/dbms/access/connector.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import logging
1414

15+
from lib.core.common import getSafeExString
1516
from lib.core.data import conf
1617
from lib.core.data import logger
1718
from lib.core.exception import SqlmapConnectionException
@@ -43,7 +44,7 @@ def connect(self):
4344
try:
4445
self.connector = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb)};Dbq=%s;Uid=Admin;Pwd=;' % self.db)
4546
except (pyodbc.Error, pyodbc.OperationalError), msg:
46-
raise SqlmapConnectionException(msg[1])
47+
raise SqlmapConnectionException(getSafeExString(msg))
4748

4849
self.initCursor()
4950
self.printConnected()
@@ -52,16 +53,16 @@ def fetchall(self):
5253
try:
5354
return self.cursor.fetchall()
5455
except pyodbc.ProgrammingError, msg:
55-
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[1])
56+
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
5657
return None
5758

5859
def execute(self, query):
5960
try:
6061
self.cursor.execute(query)
6162
except (pyodbc.OperationalError, pyodbc.ProgrammingError), msg:
62-
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[1])
63+
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
6364
except pyodbc.Error, msg:
64-
raise SqlmapConnectionException(msg[1])
65+
raise SqlmapConnectionException(getSafeExString(msg))
6566

6667
self.connector.commit()
6768

plugins/dbms/db2/connector.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import logging
1414

15+
from lib.core.common import getSafeExString
1516
from lib.core.data import conf
1617
from lib.core.data import logger
1718
from lib.core.exception import SqlmapConnectionException
@@ -44,16 +45,16 @@ def fetchall(self):
4445
try:
4546
return self.cursor.fetchall()
4647
except ibm_db_dbi.ProgrammingError, msg:
47-
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[1])
48+
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
4849
return None
4950

5051
def execute(self, query):
5152
try:
5253
self.cursor.execute(query)
5354
except (ibm_db_dbi.OperationalError, ibm_db_dbi.ProgrammingError), msg:
54-
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[1])
55+
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
5556
except ibm_db_dbi.InternalError, msg:
56-
raise SqlmapConnectionException(msg[1])
57+
raise SqlmapConnectionException(getSafeExString(msg))
5758

5859
self.connector.commit()
5960

plugins/dbms/firebird/connector.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import logging
1414

15+
from lib.core.common import getSafeExString
1516
from lib.core.data import conf
1617
from lib.core.data import logger
1718
from lib.core.exception import SqlmapConnectionException
@@ -42,7 +43,7 @@ def connect(self):
4243
# Reference: http://www.daniweb.com/forums/thread248499.html
4344
self.connector = kinterbasdb.connect(host=self.hostname.encode(UNICODE_ENCODING), database=self.db.encode(UNICODE_ENCODING), user=self.user.encode(UNICODE_ENCODING), password=self.password.encode(UNICODE_ENCODING), charset="UTF8")
4445
except kinterbasdb.OperationalError, msg:
45-
raise SqlmapConnectionException(msg[1])
46+
raise SqlmapConnectionException(getSafeExString(msg))
4647

4748
self.initCursor()
4849
self.printConnected()
@@ -51,16 +52,16 @@ def fetchall(self):
5152
try:
5253
return self.cursor.fetchall()
5354
except kinterbasdb.OperationalError, msg:
54-
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[1])
55+
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
5556
return None
5657

5758
def execute(self, query):
5859
try:
5960
self.cursor.execute(query)
6061
except kinterbasdb.OperationalError, msg:
61-
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[1])
62+
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
6263
except kinterbasdb.Error, msg:
63-
raise SqlmapConnectionException(msg[1])
64+
raise SqlmapConnectionException(getSafeExString(msg))
6465

6566
self.connector.commit()
6667

plugins/dbms/informix/connector.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import logging
1414

15+
from lib.core.common import getSafeExString
1516
from lib.core.data import conf
1617
from lib.core.data import logger
1718
from lib.core.exception import SqlmapConnectionException
@@ -35,7 +36,7 @@ def connect(self):
3536
database = "DATABASE=%s;HOSTNAME=%s;PORT=%s;PROTOCOL=TCPIP;" % (self.db, self.hostname, self.port)
3637
self.connector = ibm_db_dbi.connect(database, self.user, self.password)
3738
except ibm_db_dbi.OperationalError, msg:
38-
raise SqlmapConnectionException(msg)
39+
raise SqlmapConnectionException(getSafeExString(msg))
3940

4041
self.initCursor()
4142
self.printConnected()
@@ -44,16 +45,16 @@ def fetchall(self):
4445
try:
4546
return self.cursor.fetchall()
4647
except ibm_db_dbi.ProgrammingError, msg:
47-
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[1])
48+
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
4849
return None
4950

5051
def execute(self, query):
5152
try:
5253
self.cursor.execute(query)
5354
except (ibm_db_dbi.OperationalError, ibm_db_dbi.ProgrammingError), msg:
54-
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[1])
55+
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
5556
except ibm_db_dbi.InternalError, msg:
56-
raise SqlmapConnectionException(msg[1])
57+
raise SqlmapConnectionException(getSafeExString(msg))
5758

5859
self.connector.commit()
5960

plugins/dbms/mysql/connector.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import logging
1414
import struct
1515

16+
from lib.core.common import getSafeExString
1617
from lib.core.data import conf
1718
from lib.core.data import logger
1819
from lib.core.exception import SqlmapConnectionException
@@ -37,10 +38,8 @@ def connect(self):
3738

3839
try:
3940
self.connector = pymysql.connect(host=self.hostname, user=self.user, passwd=self.password, db=self.db, port=self.port, connect_timeout=conf.timeout, use_unicode=True)
40-
except (pymysql.OperationalError, pymysql.InternalError, pymysql.ProgrammingError), msg:
41-
raise SqlmapConnectionException(msg[1])
42-
except struct.error, msg:
43-
raise SqlmapConnectionException(msg)
41+
except (pymysql.OperationalError, pymysql.InternalError, pymysql.ProgrammingError, struct.error), msg:
42+
raise SqlmapConnectionException(getSafeExString(msg))
4443

4544
self.initCursor()
4645
self.printConnected()
@@ -49,7 +48,7 @@ def fetchall(self):
4948
try:
5049
return self.cursor.fetchall()
5150
except pymysql.ProgrammingError, msg:
52-
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[1])
51+
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
5352
return None
5453

5554
def execute(self, query):
@@ -59,9 +58,9 @@ def execute(self, query):
5958
self.cursor.execute(query)
6059
retVal = True
6160
except (pymysql.OperationalError, pymysql.ProgrammingError), msg:
62-
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[1])
61+
logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
6362
except pymysql.InternalError, msg:
64-
raise SqlmapConnectionException(msg[1])
63+
raise SqlmapConnectionException(getSafeExString(msg))
6564

6665
self.connector.commit()
6766

txt/checksum.md5

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ c7443613a0a2505b1faec931cee2a6ef lib/controller/handler.py
2929
1e5532ede194ac9c083891c2f02bca93 lib/controller/__init__.py
3030
8eb0a5dbd79bd58fedac4c0cc344246b lib/core/agent.py
3131
c347f085bd561adfa26d3a9512e5f3b9 lib/core/bigarray.py
32-
c2b12f7e29e9b2d9290c2a8a0a317499 lib/core/common.py
32+
11448f59efbfdceff2437239e36d9dc5 lib/core/common.py
3333
0d082da16c388b3445e656e0760fb582 lib/core/convert.py
3434
9f87391b6a3395f7f50830b391264f27 lib/core/data.py
3535
72016ea5c994a711a262fd64572a0fcd lib/core/datatype.py
@@ -49,7 +49,7 @@ c8c386d644d57c659d74542f5f57f632 lib/core/patch.py
4949
0c3eef46bdbf87e29a3f95f90240d192 lib/core/replication.py
5050
a7db43859b61569b601b97f187dd31c5 lib/core/revision.py
5151
fcb74fcc9577523524659ec49e2e964b lib/core/session.py
52-
88fff14c74e98f54caafe8ef5f865ee6 lib/core/settings.py
52+
d6947d662df4d4bc9c33012a98a5fbc8 lib/core/settings.py
5353
dd68a9d02fccb4fa1428b20e15b0db5d lib/core/shell.py
5454
a7edc9250d13af36ac0108f259859c19 lib/core/subprocessng.py
5555
62bc180e3e828949ffb342a8f756c183 lib/core/target.py
@@ -119,21 +119,21 @@ d0f4d56c5d6a09a4635035e233d4a782 lib/utils/hash.py
119119
dcc25183c6bd85b172c87cfcbc305ab6 lib/utils/timeout.py
120120
4703ceeb32131a9a7a6561575644123b lib/utils/versioncheck.py
121121
e9e73cd6bd814dd7823a9da913cea61c lib/utils/xrange.py
122-
b9d2761f47fec3d98b88311a263fd5db plugins/dbms/access/connector.py
122+
d8a541a63f3b561334de51abb4dcad55 plugins/dbms/access/connector.py
123123
3f1c50a1507d1c2f69c20c706230e2e2 plugins/dbms/access/enumeration.py
124124
fcc66fc377db3681f7890ec55675564b plugins/dbms/access/filesystem.py
125125
cdd082981b421248ece0e7cf278071ff plugins/dbms/access/fingerprint.py
126126
e657b1b7a295a38ac9ce515158164f00 plugins/dbms/access/__init__.py
127127
77686d7c7e287d5db0a9a87f2c7d4902 plugins/dbms/access/syntax.py
128128
2f1d8706b51497623b2b59c07b552bdc plugins/dbms/access/takeover.py
129-
8df07c2805aceb7d6fb4add40de84795 plugins/dbms/db2/connector.py
129+
24a79eb2dde8ea9340a701c8c2591701 plugins/dbms/db2/connector.py
130130
4deeda463003ab71e7d2f34a263b5bbf plugins/dbms/db2/enumeration.py
131131
da9dccd1f9ec2cf1e53295125dd983a0 plugins/dbms/db2/filesystem.py
132132
ce434fc05a7ad236c49a155d62f0cac4 plugins/dbms/db2/fingerprint.py
133133
95b35cbd859bbced44e7f8fd84486d75 plugins/dbms/db2/__init__.py
134134
82d96d8fcfd565129580260040555623 plugins/dbms/db2/syntax.py
135135
25f0fb28e9defcab48a2e946fbb7550a plugins/dbms/db2/takeover.py
136-
53bd7de27d37958f543f5329362ac298 plugins/dbms/firebird/connector.py
136+
1ac54bbfb81ffed945636432bc49466b plugins/dbms/firebird/connector.py
137137
bc4d71116d7296d63894484f2e60ade2 plugins/dbms/firebird/enumeration.py
138138
c3ca81000200e5ab4210e9bf2e04ce93 plugins/dbms/firebird/filesystem.py
139139
bf98dbd666c162088f23ee697c065010 plugins/dbms/firebird/fingerprint.py
@@ -147,7 +147,7 @@ aabc2b877a3696b99912bdf362c0fb69 plugins/dbms/hsqldb/fingerprint.py
147147
fd369161778d6b48d7f1f7fc14dcdb5c plugins/dbms/hsqldb/__init__.py
148148
4673ebfdce9859718c19e8a7765da8d3 plugins/dbms/hsqldb/syntax.py
149149
7c0535736215ca612756cf589adb249b plugins/dbms/hsqldb/takeover.py
150-
97dac442190bd4ffac3ba292e2abfd4c plugins/dbms/informix/connector.py
150+
d61a5f79a9fa07c06fe7f5a653662e95 plugins/dbms/informix/connector.py
151151
c54d70e4847c6327bd3110c4d8723b04 plugins/dbms/informix/enumeration.py
152152
da9dccd1f9ec2cf1e53295125dd983a0 plugins/dbms/informix/filesystem.py
153153
b182f01c2ba82aa94fbe4948383ea98d plugins/dbms/informix/fingerprint.py
@@ -169,7 +169,7 @@ f1f1541a54faf67440179fa521f99849 plugins/dbms/mssqlserver/enumeration.py
169169
f25c50a95e5390ecd32be5a011637349 plugins/dbms/mssqlserver/__init__.py
170170
612be1929108e7b4512a49a4a3837bbc plugins/dbms/mssqlserver/syntax.py
171171
3c0845fa526e1bb7bbe636fcfcbcc4a6 plugins/dbms/mssqlserver/takeover.py
172-
11a5724fdc0b0c0eb2626d952cda216a plugins/dbms/mysql/connector.py
172+
14bfa3960ed0b4bec2cd29800ec525b7 plugins/dbms/mysql/connector.py
173173
445164daf59b890aeacc968af58fcb53 plugins/dbms/mysql/enumeration.py
174174
edec54520556a5eb66900fca697940ff plugins/dbms/mysql/filesystem.py
175175
1c0175476b833a1b788550726be67c99 plugins/dbms/mysql/fingerprint.py

0 commit comments

Comments
 (0)