more update

This commit is contained in:
Miroslav Stampar 2010-04-06 15:12:52 +00:00
parent c24f1cc07c
commit e2810003ae
9 changed files with 39 additions and 40 deletions

View File

@ -26,6 +26,7 @@ from lib.core.agent import agent
from lib.core.data import conf from lib.core.data import conf
from lib.core.data import kb from lib.core.data import kb
from lib.core.settings import SQL_STATEMENTS from lib.core.settings import SQL_STATEMENTS
from lib.utils.timeout import timeout
def direct(query, content=True): def direct(query, content=True):
output = None output = None
@ -42,9 +43,9 @@ def direct(query, content=True):
break break
if select: if select:
output = conf.dbmsConnector.select(query) output = timeout(func=conf.dbmsConnector.select, args = query, duration=conf.timeout, default=None)
else: else:
output = conf.dbmsConnector.execute(query) output = timeout(func=conf.dbmsConnector.execute, args = query, duration=conf.timeout, default=None)
if output is None or len(output) == 0: if output is None or len(output) == 0:
return None return None

View File

@ -7,14 +7,12 @@ def timeout(func, args=(), kwargs={}, duration=1, default=None):
def __init__(self): def __init__(self):
threading.Thread.__init__(self) threading.Thread.__init__(self)
self.exceeded = False self.exceeded = False
self.exceptionMsg = None
self.result = None self.result = None
def run(self): def run(self):
try: try:
self.result = func(*args, **kwargs) self.result = func(*args, **kwargs)
except Exception, msg: except:
self.exceptionMsg = msg
self.result = default self.result = default
thread = InterruptableThread() thread = InterruptableThread()

View File

@ -30,7 +30,6 @@ except ImportError, _:
from lib.core.data import conf from lib.core.data import conf
from lib.core.data import logger from lib.core.data import logger
from lib.core.exception import sqlmapConnectionException from lib.core.exception import sqlmapConnectionException
from lib.utils.timeout import timeout
from plugins.generic.connector import Connector as GenericConnector from plugins.generic.connector import Connector as GenericConnector
@ -61,10 +60,11 @@ class Connector(GenericConnector):
self.connected() self.connected()
def fetchall(self): def fetchall(self):
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None) try:
if self.exceptionMsg: return self.cursor.fetchall()
logger.log(8, self.exceptionMsg[1]) except pyodbc.ProgrammingError, msg:
return retVal logger.log(8, msg[1])
return None
def execute(self, query): def execute(self, query):
logger.debug(query) logger.debug(query)

View File

@ -30,7 +30,6 @@ except ImportError, _:
from lib.core.data import conf from lib.core.data import conf
from lib.core.data import logger from lib.core.data import logger
from lib.core.exception import sqlmapConnectionException from lib.core.exception import sqlmapConnectionException
from lib.utils.timeout import timeout
from plugins.generic.connector import Connector as GenericConnector from plugins.generic.connector import Connector as GenericConnector
@ -60,10 +59,11 @@ class Connector(GenericConnector):
self.connected() self.connected()
def fetchall(self): def fetchall(self):
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None) try:
if self.exceptionMsg: return self.cursor.fetchall()
logger.log(8, self.exceptionMsg[1]) except kinterbasdb.OperationalError, msg:
return retVal logger.log(8, msg[1])
return None
def execute(self, query): def execute(self, query):
logger.debug(query) logger.debug(query)

View File

@ -31,7 +31,6 @@ except ImportError, _:
from lib.core.data import conf from lib.core.data import conf
from lib.core.data import logger from lib.core.data import logger
from lib.core.exception import sqlmapConnectionException from lib.core.exception import sqlmapConnectionException
from lib.utils.timeout import timeout
from plugins.generic.connector import Connector as GenericConnector from plugins.generic.connector import Connector as GenericConnector
@ -64,10 +63,11 @@ class Connector(GenericConnector):
self.connected() self.connected()
def fetchall(self): def fetchall(self):
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None) try:
if self.exceptionMsg: return self.cursor.fetchall()
logger.log(8, self.exceptionMsg) except (pymssql.ProgrammingError, pymssql.OperationalError, _mssql.MssqlDatabaseException), msg:
return retVal logger.log(8, msg)
return None
def execute(self, query): def execute(self, query):
logger.debug(query) logger.debug(query)

View File

@ -30,7 +30,6 @@ except ImportError, _:
from lib.core.data import conf from lib.core.data import conf
from lib.core.data import logger from lib.core.data import logger
from lib.core.exception import sqlmapConnectionException from lib.core.exception import sqlmapConnectionException
from lib.utils.timeout import timeout
from plugins.generic.connector import Connector as GenericConnector from plugins.generic.connector import Connector as GenericConnector
@ -60,10 +59,11 @@ class Connector(GenericConnector):
self.connected() self.connected()
def fetchall(self): def fetchall(self):
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None) try:
if self.exceptionMsg: return self.cursor.fetchall()
logger.log(8, self.exceptionMsg[1]) except MySQLdb.ProgrammingError, msg:
return retVal logger.log(8, msg[1])
return None
def execute(self, query): def execute(self, query):
logger.debug(query) logger.debug(query)

View File

@ -30,7 +30,6 @@ except ImportError, _:
from lib.core.data import conf from lib.core.data import conf
from lib.core.data import logger from lib.core.data import logger
from lib.core.exception import sqlmapConnectionException from lib.core.exception import sqlmapConnectionException
from lib.utils.timeout import timeout
from plugins.generic.connector import Connector as GenericConnector from plugins.generic.connector import Connector as GenericConnector
@ -62,10 +61,11 @@ class Connector(GenericConnector):
self.connected() self.connected()
def fetchall(self): def fetchall(self):
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None) try:
if self.exceptionMsg: return self.cursor.fetchall()
logger.log(8, self.exceptionMsg) except cx_Oracle.InterfaceError, msg:
return retVal logger.log(8, msg)
return None
def execute(self, query): def execute(self, query):
logger.debug(query) logger.debug(query)

View File

@ -30,7 +30,6 @@ except ImportError, _:
from lib.core.data import conf from lib.core.data import conf
from lib.core.data import logger from lib.core.data import logger
from lib.core.exception import sqlmapConnectionException from lib.core.exception import sqlmapConnectionException
from lib.utils.timeout import timeout
from plugins.generic.connector import Connector as GenericConnector from plugins.generic.connector import Connector as GenericConnector
@ -60,10 +59,11 @@ class Connector(GenericConnector):
self.connected() self.connected()
def fetchall(self): def fetchall(self):
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None) try:
if self.exceptionMsg: return self.cursor.fetchall()
logger.log(8, self.exceptionMsg) except psycopg2.ProgrammingError, msg:
return retVal logger.log(8, msg)
return None
def execute(self, query): def execute(self, query):
logger.debug(query) logger.debug(query)

View File

@ -30,7 +30,6 @@ except ImportError, _:
from lib.core.data import conf from lib.core.data import conf
from lib.core.data import logger from lib.core.data import logger
from lib.core.exception import sqlmapConnectionException from lib.core.exception import sqlmapConnectionException
from lib.utils.timeout import timeout
from plugins.generic.connector import Connector as GenericConnector from plugins.generic.connector import Connector as GenericConnector
@ -61,10 +60,11 @@ class Connector(GenericConnector):
self.connected() self.connected()
def fetchall(self): def fetchall(self):
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None) try:
if self.exceptionMsg: return self.cursor.fetchall()
logger.log(8, self.exceptionMsg[0]) except sqlite3.OperationalError, msg:
return retVal logger.log(8, msg[0])
return None
def execute(self, query): def execute(self, query):
logger.debug(query) logger.debug(query)