Path: blob/master/plugins/dbms/informix/connector.py
2992 views
#!/usr/bin/env python12"""3Copyright (c) 2006-2025 sqlmap developers (https://sqlmap.org)4See the file 'LICENSE' for copying permission5"""67try:8import ibm_db_dbi9except:10pass1112import logging1314from lib.core.common import getSafeExString15from lib.core.data import conf16from lib.core.data import logger17from lib.core.exception import SqlmapConnectionException18from plugins.generic.connector import Connector as GenericConnector1920class Connector(GenericConnector):21"""22Homepage: https://github.com/ibmdb/python-ibmdb23User guide: https://github.com/ibmdb/python-ibmdb/wiki/README24API: https://www.python.org/dev/peps/pep-0249/25License: Apache License 2.026"""2728def connect(self):29self.initConnection()3031try:32database = "DATABASE=%s;HOSTNAME=%s;PORT=%s;PROTOCOL=TCPIP;" % (self.db, self.hostname, self.port)33self.connector = ibm_db_dbi.connect(database, self.user, self.password)34except ibm_db_dbi.OperationalError as ex:35raise SqlmapConnectionException(getSafeExString(ex))3637self.initCursor()38self.printConnected()3940def fetchall(self):41try:42return self.cursor.fetchall()43except ibm_db_dbi.ProgrammingError as ex:44logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(ex))45return None4647def execute(self, query):48try:49self.cursor.execute(query)50except (ibm_db_dbi.OperationalError, ibm_db_dbi.ProgrammingError) as ex:51logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(ex))52except ibm_db_dbi.InternalError as ex:53raise SqlmapConnectionException(getSafeExString(ex))5455self.connector.commit()5657def select(self, query):58self.execute(query)59return self.fetchall()606162