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

Skip to content

Commit 0d2db32

Browse files
committed
Finalizing #3283
1 parent 77f4fd9 commit 0d2db32

5 files changed

Lines changed: 25 additions & 16 deletions

File tree

lib/core/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from lib.core.enums import OS
2020

2121
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
22-
VERSION = "1.2.10.23"
22+
VERSION = "1.2.10.24"
2323
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
2424
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
2525
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)

plugins/generic/databases.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -757,10 +757,14 @@ def getColumns(self, onlyColNames=False, colTuple=None, bruteForce=None, dumpMod
757757
continue
758758

759759
for index in getLimitRange(count):
760-
if Backend.getIdentifiedDbms() in (DBMS.MYSQL, DBMS.PGSQL, DBMS.HSQLDB, DBMS.H2):
760+
if Backend.getIdentifiedDbms() in (DBMS.MYSQL, DBMS.PGSQL, DBMS.HSQLDB):
761761
query = rootQuery.blind.query % (unsafeSQLIdentificatorNaming(tbl), unsafeSQLIdentificatorNaming(conf.db))
762762
query += condQuery
763763
field = None
764+
elif Backend.isDbms(DBMS.H2):
765+
query = rootQuery.blind.query % (unsafeSQLIdentificatorNaming(tbl), unsafeSQLIdentificatorNaming(conf.db))
766+
query = query.replace(" ORDER BY ", "%s ORDER BY " % condQuery)
767+
field = None
764768
elif Backend.getIdentifiedDbms() in (DBMS.ORACLE, DBMS.DB2):
765769
query = rootQuery.blind.query % (unsafeSQLIdentificatorNaming(tbl.upper()), unsafeSQLIdentificatorNaming(conf.db.upper()))
766770
query += condQuery

plugins/generic/search.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def searchDb(self):
6060
values = []
6161
db = safeSQLIdentificatorNaming(db)
6262

63-
if Backend.getIdentifiedDbms() in (DBMS.ORACLE, DBMS.DB2):
63+
if Backend.getIdentifiedDbms() in (DBMS.ORACLE, DBMS.DB2, DBMS.HSQLDB, DBMS.H2):
6464
db = db.upper()
6565

6666
infoMsg = "searching database"
@@ -167,8 +167,9 @@ def searchTable(self):
167167
values = []
168168
tbl = safeSQLIdentificatorNaming(tbl, True)
169169

170-
if Backend.getIdentifiedDbms() in (DBMS.ORACLE, DBMS.DB2, DBMS.FIREBIRD):
170+
if Backend.getIdentifiedDbms() in (DBMS.ORACLE, DBMS.DB2, DBMS.FIREBIRD, DBMS.HSQLDB, DBMS.H2):
171171
tbl = tbl.upper()
172+
conf.db = conf.db.upper() if conf.db else conf.db
172173

173174
infoMsg = "searching table"
174175
if tblConsider == '1':
@@ -303,7 +304,9 @@ def searchTable(self):
303304
for index in indexRange:
304305
query = rootQuery.blind.query2
305306

306-
if query.endswith("'%s')"):
307+
if " ORDER BY " in query:
308+
query = query.replace(" ORDER BY ", "%s ORDER BY " % (" AND %s" % tblQuery))
309+
elif query.endswith("'%s')"):
307310
query = query[:-1] + " AND %s)" % tblQuery
308311
else:
309312
query += " AND %s" % tblQuery
@@ -387,8 +390,10 @@ def searchColumn(self):
387390
conf.db = origDb
388391
conf.tbl = origTbl
389392

390-
if Backend.getIdentifiedDbms() in (DBMS.ORACLE, DBMS.DB2):
393+
if Backend.getIdentifiedDbms() in (DBMS.ORACLE, DBMS.DB2, DBMS.HSQLDB, DBMS.H2):
391394
column = column.upper()
395+
conf.db = conf.db.upper() if conf.db else conf.db
396+
conf.tbl = conf.tbl.upper() if conf.tbl else conf.tbl
392397

393398
infoMsg = "searching column"
394399
if colConsider == "1":

txt/checksum.md5

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ c8c386d644d57c659d74542f5f57f632 lib/core/patch.py
4949
0c3eef46bdbf87e29a3f95f90240d192 lib/core/replication.py
5050
a7db43859b61569b601b97f187dd31c5 lib/core/revision.py
5151
fcb74fcc9577523524659ec49e2e964b lib/core/session.py
52-
dd0f57aae1f982454ab4ec1ba1dcbda2 lib/core/settings.py
52+
daf454e49b91d6bed48ec832c4b6f727 lib/core/settings.py
5353
dd68a9d02fccb4fa1428b20e15b0db5d lib/core/shell.py
5454
a7edc9250d13af36ac0108f259859c19 lib/core/subprocessng.py
5555
47ad325975ab21fc9f11d90b46d0d143 lib/core/target.py
@@ -213,14 +213,14 @@ a3db8618eed5bb2807b6f77605cba9cc plugins/dbms/sybase/__init__.py
213213
79f6c7017db4ded8f74a0117188836ff plugins/dbms/sybase/takeover.py
214214
34d181a7086d6dfc7e72ae5f8a4cfe0f plugins/generic/connector.py
215215
ce6a6ff713852b5eca7b78316cc941c4 plugins/generic/custom.py
216-
dd0875db408080c8192c5186d2d9c246 plugins/generic/databases.py
216+
3d75e831574c750ed58e24eaa562c056 plugins/generic/databases.py
217217
35546acab0eea406c23b84363df4d534 plugins/generic/entries.py
218218
d82f2c78c1d4d7c6487e94fd3a68a908 plugins/generic/enumeration.py
219219
0a67b8b46f69df7cfacc286b47a0d9a5 plugins/generic/filesystem.py
220220
f5d5419efddfe04648ea5e953c650793 plugins/generic/fingerprint.py
221221
1e5532ede194ac9c083891c2f02bca93 plugins/generic/__init__.py
222222
f7874230e5661910d5fd21544c7d1022 plugins/generic/misc.py
223-
b1d2a7f3170f9b69e71335aa47f9b08b plugins/generic/search.py
223+
30b421f06dc98998ddc1923a9048b7fc plugins/generic/search.py
224224
a70cc0ada4b0cc9e7df23cb6d48a4a0c plugins/generic/syntax.py
225225
a37c21cc3fa5c0c220d33d450bf503ed plugins/generic/takeover.py
226226
e762c77ff79e4c138145501f6fbb10cb plugins/generic/users.py
@@ -484,4 +484,4 @@ a279656ea3fcb85c727249b02f828383 xml/livetests.xml
484484
82c65823a0af3fccbecf37f1c75f0b29 xml/payloads/stacked_queries.xml
485485
92c41925eba27afeed76bceba6b18be2 xml/payloads/time_blind.xml
486486
ac649aff0e7db413e4937e446e398736 xml/payloads/union_query.xml
487-
67fa3c0ae62e866763be0dffebf19855 xml/queries.xml
487+
7bbf2a82593efffc68e8001299a5691f xml/queries.xml

xml/queries.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -770,16 +770,16 @@
770770
<inband query="SELECT %s FROM %s.%s ORDER BY %s"/>
771771
</dump_table>
772772
<search_db>
773-
<blind query="SELECT DISTINCT(table_schem) FROM INFORMATION_SCHEMA.SYSTEM_SCHEMAS WHERE %s" count="SELECT COUNT(DISTINCT(table_schem)) FROM INFORMATION_SCHEMA.SYSTEM_SCHEMAS WHERE %s" condition="table_schem"/>
774-
<inband query="SELECT table_schem FROM INFORMATION_SCHEMA.SYSTEM_SCHEMAS WHERE %s" condition="table_schem"/>
773+
<blind query="SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE %s" count="SELECT COUNT(SCHEMA_NAME) FROM INFORMATION_SCHEMA.SCHEMATA WHERE %s" condition="SCHEMA_NAME"/>
774+
<inband query="SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE %s" condition="SCHEMA_NAME"/>
775775
</search_db>
776776
<search_table>
777-
<blind query="SELECT DISTINCT(table_schem) FROM INFORMATION_SCHEMA.SYSTEM_TABLES WHERE %s" query2="SELECT DISTINCT(table_name) FROM INFORMATION_SCHEMA.SYSTEM_TABLES WHERE table_schem='%s'" count="SELECT COUNT(DISTINCT(table_schem)) FROM INFORMATION_SCHEMA.SYSTEM_TABLES WHERE %s" count2="SELECT COUNT(DISTINCT(table_name)) FROM INFORMATION_SCHEMA.SYSTEM_TABLES WHERE table_schem='%s'" condition="table_name" condition2="table_schem"/>
778-
<inband query="SELECT table_schem,table_name FROM INFORMATION_SCHEMA.SYSTEM_TABLES WHERE %s" condition="table_name" condition2="table_schem"/>
777+
<blind query="SELECT DISTINCT(TABLE_SCHEMA) FROM INFORMATION_SCHEMA.TABLES WHERE %s ORDER BY 1" query2="SELECT DISTINCT(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='%s' ORDER BY 1" count="SELECT COUNT(DISTINCT(TABLE_SCHEMA)) FROM INFORMATION_SCHEMA.TABLES WHERE %s" count2="SELECT COUNT(DISTINCT(TABLE_NAME)) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='%s'" condition="TABLE_NAME" condition2="TABLE_SCHEMA"/>
778+
<inband query="SELECT TABLE_SCHEMA,TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE %s" condition="TABLE_NAME" condition2="TABLE_SCHEMA"/>
779779
</search_table>
780780
<search_column>
781-
<blind query="SELECT DISTINCT(table_schem) FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS WHERE %s" count="SELECT COUNT(DISTINCT(table_schem)) FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS WHERE %s" condition="column_name" condition2="table_schem" condition3="table_name"/>
782-
<inband query="SELECT table_schem,table_name FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS WHERE %s" condition="column_name" condition2="table_schem" condition3="table_name"/>
781+
<blind query="SELECT DISTINCT(TABLE_SCHEMA) FROM INFORMATION_SCHEMA.COLUMNS WHERE %s ORDER BY 1" query2="SELECT DISTINCT(TABLE_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='%s' ORDER BY 1" count="SELECT COUNT(DISTINCT(TABLE_SCHEMA)) FROM INFORMATION_SCHEMA.COLUMNS WHERE %s" count2="SELECT COUNT(DISTINCT(TABLE_NAME)) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='%s'" condition="column_name" condition2="TABLE_SCHEMA" condition3="TABLE_NAME"/>
782+
<inband query="SELECT TABLE_SCHEMA,TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE %s" condition="COLUMN_NAME" condition2="TABLE_SCHEMA" condition3="TABLE_NAME"/>
783783
</search_column>
784784
</dbms>
785785

0 commit comments

Comments
 (0)