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

Skip to content

Commit 1ab78ce

Browse files
committed
Added support to directly connect also to SQLite 2 db file
1 parent fee0627 commit 1ab78ce

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

lib/core/common.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ def parseTargetDirect():
643643
"MySQL": [MYSQL_ALIASES, "python-mysqldb", "http://mysql-python.sourceforge.net/"],
644644
"PostgreSQL": [PGSQL_ALIASES, "python-psycopg2", "http://initd.org/psycopg/"],
645645
"Oracle": [ORACLE_ALIASES, "python cx_Oracle", "http://cx-oracle.sourceforge.net/"],
646-
"SQLite": [SQLITE_ALIASES, "python-pysqlite2", "http://pysqlite.googlecode.com/"],
646+
"SQLite": [SQLITE_ALIASES, "python-pysqlite2 and python-sqlite", "http://pysqlite.googlecode.com/"],
647647
"Access": [ACCESS_ALIASES, "python-pyodbc", "http://pyodbc.googlecode.com/"],
648648
"Firebird": [FIREBIRD_ALIASES, "python-kinterbasdb", "http://kinterbasdb.sourceforge.net/"] }
649649

@@ -679,6 +679,7 @@ def parseTargetDirect():
679679
elif dbmsName == "Oracle":
680680
import cx_Oracle
681681
elif dbmsName == "SQLite":
682+
import sqlite
682683
import sqlite3
683684
elif dbmsName == "Access":
684685
import pyodbc

plugins/dbms/sqlite/connector.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"""
2424

2525
try:
26+
import sqlite
2627
import sqlite3
2728
except ImportError, _:
2829
pass
@@ -52,9 +53,15 @@ def connect(self):
5253
self.checkFileDb()
5354

5455
try:
55-
self.connector = sqlite3.connect(database=self.db, check_same_thread=False, timeout=conf.timeout)
56-
except sqlite3.OperationalError, msg:
57-
raise sqlmapConnectionException, msg[0]
56+
self.connector = sqlite.connect(database=self.db, check_same_thread=False, timeout=conf.timeout)
57+
except (sqlite.DatabaseError, sqlite.OperationalError), _:
58+
errMsg = "unable to connect using SQLite 2 library, trying with SQLite 3"
59+
logger.error(errMsg)
60+
61+
try:
62+
self.connector = sqlite3.connect(database=self.db, check_same_thread=False, timeout=conf.timeout)
63+
except (sqlite.DatabaseError, sqlite.OperationalError), msg:
64+
raise sqlmapConnectionException, msg[0]
5865

5966
self.setCursor()
6067
self.connected()

0 commit comments

Comments
 (0)