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

Skip to content

Commit e281000

Browse files
committed
more update
1 parent c24f1cc commit e281000

9 files changed

Lines changed: 39 additions & 40 deletions

File tree

lib/request/direct.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from lib.core.data import conf
2727
from lib.core.data import kb
2828
from lib.core.settings import SQL_STATEMENTS
29+
from lib.utils.timeout import timeout
2930

3031
def direct(query, content=True):
3132
output = None
@@ -42,9 +43,9 @@ def direct(query, content=True):
4243
break
4344

4445
if select:
45-
output = conf.dbmsConnector.select(query)
46+
output = timeout(func=conf.dbmsConnector.select, args = query, duration=conf.timeout, default=None)
4647
else:
47-
output = conf.dbmsConnector.execute(query)
48+
output = timeout(func=conf.dbmsConnector.execute, args = query, duration=conf.timeout, default=None)
4849

4950
if output is None or len(output) == 0:
5051
return None

lib/utils/timeout.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,12 @@ class InterruptableThread(threading.Thread):
77
def __init__(self):
88
threading.Thread.__init__(self)
99
self.exceeded = False
10-
self.exceptionMsg = None
1110
self.result = None
1211

1312
def run(self):
1413
try:
1514
self.result = func(*args, **kwargs)
16-
except Exception, msg:
17-
self.exceptionMsg = msg
15+
except:
1816
self.result = default
1917

2018
thread = InterruptableThread()

plugins/dbms/access/connector.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
from lib.core.data import conf
3131
from lib.core.data import logger
3232
from lib.core.exception import sqlmapConnectionException
33-
from lib.utils.timeout import timeout
3433

3534
from plugins.generic.connector import Connector as GenericConnector
3635

@@ -61,10 +60,11 @@ def connect(self):
6160
self.connected()
6261

6362
def fetchall(self):
64-
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None)
65-
if self.exceptionMsg:
66-
logger.log(8, self.exceptionMsg[1])
67-
return retVal
63+
try:
64+
return self.cursor.fetchall()
65+
except pyodbc.ProgrammingError, msg:
66+
logger.log(8, msg[1])
67+
return None
6868

6969
def execute(self, query):
7070
logger.debug(query)

plugins/dbms/firebird/connector.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
from lib.core.data import conf
3131
from lib.core.data import logger
3232
from lib.core.exception import sqlmapConnectionException
33-
from lib.utils.timeout import timeout
3433

3534
from plugins.generic.connector import Connector as GenericConnector
3635

@@ -60,10 +59,11 @@ def connect(self):
6059
self.connected()
6160

6261
def fetchall(self):
63-
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None)
64-
if self.exceptionMsg:
65-
logger.log(8, self.exceptionMsg[1])
66-
return retVal
62+
try:
63+
return self.cursor.fetchall()
64+
except kinterbasdb.OperationalError, msg:
65+
logger.log(8, msg[1])
66+
return None
6767

6868
def execute(self, query):
6969
logger.debug(query)

plugins/dbms/mssqlserver/connector.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
from lib.core.data import conf
3232
from lib.core.data import logger
3333
from lib.core.exception import sqlmapConnectionException
34-
from lib.utils.timeout import timeout
3534

3635
from plugins.generic.connector import Connector as GenericConnector
3736

@@ -64,10 +63,11 @@ def connect(self):
6463
self.connected()
6564

6665
def fetchall(self):
67-
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None)
68-
if self.exceptionMsg:
69-
logger.log(8, self.exceptionMsg)
70-
return retVal
66+
try:
67+
return self.cursor.fetchall()
68+
except (pymssql.ProgrammingError, pymssql.OperationalError, _mssql.MssqlDatabaseException), msg:
69+
logger.log(8, msg)
70+
return None
7171

7272
def execute(self, query):
7373
logger.debug(query)

plugins/dbms/mysql/connector.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
from lib.core.data import conf
3131
from lib.core.data import logger
3232
from lib.core.exception import sqlmapConnectionException
33-
from lib.utils.timeout import timeout
3433

3534
from plugins.generic.connector import Connector as GenericConnector
3635

@@ -60,10 +59,11 @@ def connect(self):
6059
self.connected()
6160

6261
def fetchall(self):
63-
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None)
64-
if self.exceptionMsg:
65-
logger.log(8, self.exceptionMsg[1])
66-
return retVal
62+
try:
63+
return self.cursor.fetchall()
64+
except MySQLdb.ProgrammingError, msg:
65+
logger.log(8, msg[1])
66+
return None
6767

6868
def execute(self, query):
6969
logger.debug(query)

plugins/dbms/oracle/connector.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
from lib.core.data import conf
3131
from lib.core.data import logger
3232
from lib.core.exception import sqlmapConnectionException
33-
from lib.utils.timeout import timeout
3433

3534
from plugins.generic.connector import Connector as GenericConnector
3635

@@ -62,10 +61,11 @@ def connect(self):
6261
self.connected()
6362

6463
def fetchall(self):
65-
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None)
66-
if self.exceptionMsg:
67-
logger.log(8, self.exceptionMsg)
68-
return retVal
64+
try:
65+
return self.cursor.fetchall()
66+
except cx_Oracle.InterfaceError, msg:
67+
logger.log(8, msg)
68+
return None
6969

7070
def execute(self, query):
7171
logger.debug(query)

plugins/dbms/postgresql/connector.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
from lib.core.data import conf
3131
from lib.core.data import logger
3232
from lib.core.exception import sqlmapConnectionException
33-
from lib.utils.timeout import timeout
3433

3534
from plugins.generic.connector import Connector as GenericConnector
3635

@@ -60,10 +59,11 @@ def connect(self):
6059
self.connected()
6160

6261
def fetchall(self):
63-
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None)
64-
if self.exceptionMsg:
65-
logger.log(8, self.exceptionMsg)
66-
return retVal
62+
try:
63+
return self.cursor.fetchall()
64+
except psycopg2.ProgrammingError, msg:
65+
logger.log(8, msg)
66+
return None
6767

6868
def execute(self, query):
6969
logger.debug(query)

plugins/dbms/sqlite/connector.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
from lib.core.data import conf
3131
from lib.core.data import logger
3232
from lib.core.exception import sqlmapConnectionException
33-
from lib.utils.timeout import timeout
3433

3534
from plugins.generic.connector import Connector as GenericConnector
3635

@@ -61,10 +60,11 @@ def connect(self):
6160
self.connected()
6261

6362
def fetchall(self):
64-
retVal = timeout(func=self.cursor.fetchall, duration=conf.timeout, default=None)
65-
if self.exceptionMsg:
66-
logger.log(8, self.exceptionMsg[0])
67-
return retVal
63+
try:
64+
return self.cursor.fetchall()
65+
except sqlite3.OperationalError, msg:
66+
logger.log(8, msg[0])
67+
return None
6868

6969
def execute(self, query):
7070
logger.debug(query)

0 commit comments

Comments
 (0)