Skip to content

Commit c5d7c54

Browse files
committed
Update for Apache Derby (#5315)
1 parent 4357b00 commit c5d7c54

File tree

4 files changed

+9
-9
lines changed

4 files changed

+9
-9
lines changed

data/xml/queries.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -938,8 +938,8 @@
938938
<length query="LENGTH(RTRIM(CAST(%s AS CHAR(254))))"/>
939939
<isnull query="COALESCE(%s,' ')"/>
940940
<delimiter query="||"/>
941-
<limit query="{LIMIT %d OFFSET %d}"/>
942-
<limitregexp query="{LIMIT\s+([\d]+)\s+OFFSET\s+([\d]+)}"/>
941+
<limit query="OFFSET %d ROWS FETCH FIRST %d ROWS ONLY"/>
942+
<limitregexp query="OFFSET\s+([\d]+)\s+ROWS\s+FETCH\s+FIRST\s+([\d]+)\s+ROWS\s+ONLY"/>
943943
<limitgroupstart query="2"/>
944944
<limitgroupstop query="1"/>
945945
<limitstring/>
@@ -962,11 +962,11 @@
962962
<is_dba query="(SELECT COUNT(*) FROM SYS.SYSUSERS)>=0"/>
963963
<dbs>
964964
<inband query="SELECT SCHEMANAME FROM SYS.SYSSCHEMAS"/>
965-
<blind query="SELECT SCHEMANAME FROM SYS.SYSSCHEMAS {LIMIT 1 OFFSET %d}" count="SELECT COUNT(SCHEMANAME) FROM SYS.SYSSCHEMAS"/>
965+
<blind query="SELECT SCHEMANAME FROM SYS.SYSSCHEMAS OFFSET %d ROWS FETCH FIRST 1 ROW ONLY" count="SELECT COUNT(SCHEMANAME) FROM SYS.SYSSCHEMAS"/>
966966
</dbs>
967967
<tables>
968968
<inband query="SELECT SCHEMANAME,TABLENAME FROM SYS.SYSTABLES JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID=SYS.SYSSCHEMAS.SCHEMAID" condition="SCHEMANAME"/>
969-
<blind query="SELECT TABLENAME FROM SYS.SYSTABLES JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID=SYS.SYSSCHEMAS.SCHEMAID WHERE SCHEMANAME='%s' {LIMIT 1 OFFSET %d}" count="SELECT COUNT(TABLENAME) FROM SYS.SYSTABLES JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID=SYS.SYSSCHEMAS.SCHEMAID WHERE SCHEMANAME='%s'"/>
969+
<blind query="SELECT TABLENAME FROM SYS.SYSTABLES JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID=SYS.SYSSCHEMAS.SCHEMAID WHERE SCHEMANAME='%s' OFFSET %d ROWS FETCH FIRST 1 ROW ONLY" count="SELECT COUNT(TABLENAME) FROM SYS.SYSTABLES JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID=SYS.SYSSCHEMAS.SCHEMAID WHERE SCHEMANAME='%s'"/>
970970
</tables>
971971
<columns>
972972
<!-- NOTE: COLUMNDATATYPE without CAST() causes problems during enumeration -->
@@ -975,11 +975,11 @@
975975
</columns>
976976
<dump_table>
977977
<inband query="SELECT %s FROM %s"/>
978-
<blind query="SELECT %s FROM %s {LIMIT 1 OFFSET %d}" count="SELECT COUNT(*) FROM %s"/>
978+
<blind query="SELECT %s FROM %s OFFSET %d ROWS FETCH FIRST 1 ROW ONLY" count="SELECT COUNT(*) FROM %s"/>
979979
</dump_table>
980980
<users>
981981
<inband query="SELECT USERNAME FROM SYS.SYSUSERS"/>
982-
<blind query="SELECT USERNAME FROM SYS.SYSUSERS {LIMIT 1 OFFSET %d}" count="SELECT COUNT(USERNAME) FROM SYS.SYSUSERS"/>
982+
<blind query="SELECT USERNAME FROM SYS.SYSUSERS OFFSET %d ROWS FETCH FIRST 1 ROW ONLY" count="SELECT COUNT(USERNAME) FROM SYS.SYSUSERS"/>
983983
</users>
984984
<!-- NOTE: No one can view the 'SYSUSERS'.'PASSWORD' column -->
985985
<passwords/>

lib/core/agent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1028,7 +1028,7 @@ def limitQuery(self, num, query, field=None, uniqueField=None):
10281028
limitedQuery += " %s" % limitStr
10291029

10301030
elif Backend.getIdentifiedDbms() in (DBMS.DERBY, DBMS.CRATEDB, DBMS.CLICKHOUSE):
1031-
limitStr = queries[Backend.getIdentifiedDbms()].limit.query % (1, num)
1031+
limitStr = queries[Backend.getIdentifiedDbms()].limit.query % (num, 1)
10321032
limitedQuery += " %s" % limitStr
10331033

10341034
elif Backend.getIdentifiedDbms() in (DBMS.FRONTBASE, DBMS.VIRTUOSO):

lib/core/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from thirdparty.six import unichr as _unichr
2121

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

plugins/dbms/derby/fingerprint.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def checkDbms(self):
6868
infoMsg = "testing %s" % DBMS.DERBY
6969
logger.info(infoMsg)
7070

71-
result = inject.checkBooleanExpression("[RANDNUM]=(SELECT [RANDNUM] FROM SYSIBM.SYSDUMMY1 {LIMIT 1 OFFSET 0})")
71+
result = inject.checkBooleanExpression("[RANDNUM]=(SELECT [RANDNUM] FROM SYSIBM.SYSDUMMY1 OFFSET 0 ROWS FETCH FIRST 1 ROW ONLY)")
7272

7373
if result:
7474
infoMsg = "confirming %s" % DBMS.DERBY

0 commit comments

Comments
 (0)