题目显示文本输入框,尝试1’ and 1’=1’#
显示被过滤,题目为堆叠注入:mysql数据库sql语句的默认结束符是以";"号结尾,在执行多条sql语句时就要使用结束符隔;开,而堆叠注入其实就是通过结束符来执行多条sql语句
使用1;show databases;来查看数据库,出现数据库
使用1;show tables;来查看表名,但是使用1;show columns from Flag;无回显,说明flag被过滤。这里可以使用1;set sql_mode=PIPES_AS_CONCAT;select 1来进行查询
sql_mode=PIPES_AS_CONCAT可以令mysql语句里面的||起到连接符的作用,在正常的 mysql语句中,||表示或的意思。
也可以使用*,1来查询flag已知后端语句是select 输入内容 || flag from Flag,输入*,1就相当于构造了select *,1 || flag from Flag,这条语句执行起来相当于select *, 1 from Flag