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

Skip to content

Commit fe686fe

Browse files
committed
Added support for direct connection (-d switch) to IBM DB2
1 parent 9eb6835 commit fe686fe

1 file changed

Lines changed: 38 additions & 12 deletions

File tree

plugins/dbms/db2/connector.py

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,57 @@
11
#!/usr/bin/env python
22

3-
"""
4-
$Id$
5-
6-
Copyright (c) 2006-2011 sqlmap developers (http://sqlmap.sourceforge.net/)
7-
See the file 'doc/COPYING' for copying permission
8-
"""
93

104
try:
11-
import ibm_db
5+
import ibm_db_dbi
126
except ImportError, _:
137
pass
148

159
from lib.core.data import logger
1610
from lib.core.exception import sqlmapConnectionException
17-
from lib.core.exception import sqlmapUnsupportedFeatureException
1811

1912
from plugins.generic.connector import Connector as GenericConnector
2013

2114
class Connector(GenericConnector):
2215
"""
2316
Homepage: http://code.google.com/p/ibm-db/
24-
User guide: http://code.google.com/p/ibm-db/wiki/ibm_db_README
25-
API: http://code.google.com/p/ibm-db/wiki/APIs
26-
Debian package: <none>
27-
License: Apache
17+
User guide: http://code.google.com/p/ibm-db/wiki/README
18+
API: http://www.python.org/dev/peps/pep-0249/
19+
License: Apache License 2.0
2820
"""
2921

3022
def __init__(self):
3123
GenericConnector.__init__(self)
24+
25+
def connect(self):
26+
self.initConnection()
27+
28+
try:
29+
database = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=%s;HOSTNAME=%s;PORT=%s;PROTOCOL=TCPIP;" % (self.db, self.hostname, self.port)
30+
self.connector = ibm_db_dbi.connect(database, self.user, self.password)
31+
except ibm_db_dbi.OperationalError, msg:
32+
raise sqlmapConnectionException, msg
33+
34+
35+
self.setCursor()
36+
self.connected()
37+
38+
def fetchall(self):
39+
try:
40+
return self.cursor.fetchall()
41+
except ibm_db_dbi.ProgrammingError, msg:
42+
logger.warn(msg[1])
43+
return None
44+
45+
def execute(self, query):
46+
try:
47+
self.cursor.execute(query)
48+
except (ibm_db_dbi.OperationalError, ibm_db_dbi.ProgrammingError), msg:
49+
logger.warn(msg[1])
50+
except ibm_db_dbi.InternalError, msg:
51+
raise sqlmapConnectionException, msg[1]
52+
53+
self.connector.commit()
54+
55+
def select(self, query):
56+
self.execute(query)
57+
return self.fetchall()

0 commit comments

Comments
 (0)