BUU sql注入-[强网杯 2019]随便注

一、题目

 

 一进来先看看能否用构造单引号闭合:

 发现提示报错,可以操作了

二、解题

 方法一:handler命令打开

 

先查列数,这里是输入2没报错,但输入3报错了,所以是2列

试试联合查询

回显信息是

return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

 $inject是我们在输入框中提交的变量名,preg_match()在这里的作用是检测关键字,猜测会被过滤掉,其中联合查询要用的select,where都不行,换个思路

这个时候想到堆叠注入

sql命令中,我们通常用 ; 来表示一句命令的结束,那么在多个命令语句中间插入 ; ,这些命令就可以一起执行,而联合查询中无论是union 还是union all ,能执行的语句类型都是有限的

直接查表

1';show tables;#

这一长串数字非常可疑,把里面的列show出来看看

 果然有flag

 现在我们只需要打开这个flag

在MySQL中有一种命令叫 handler

通过HANDLER tbl_name OPEN打开一张表,无返回结果,实际上我们在这里声明了一个名为tb1_name的句柄。
通过HANDLER tbl_name READ FIRST获取句柄的第一行,通过READ NEXT依次获取其它行。最后一行执行之后再执行NEXT会返回一个空的结果。

handler命令与select命令区别在于,前者一次只返回一行,而后者会返回所有相关结果

那么在这里直接构造payload

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

 

直接爆出flag

方法二:用alertrename命令改名后查询

rename 用于修改 table 的名称

alter 用于修改表中字段的属性

参考:SQL Injection8(堆叠注入)——强网杯2019随便注_kid的博客-CSDN博客SQL Injection8(堆叠注入)——强网杯2019随便注前言前面参加强网杯线上赛,亲身体验了一把ctf从入门到入土,从打ctf变成被ctf打…这里结合里面的题来对里面的知识点进行一个学习总结随便注是一道sql注入题,因为过滤规则十分强大,所以很难…这里会用到堆叠注入的知识,堆叠注入前面有所了解,觉得并不难,所以也没练习过,但做这道题的时候就又些懵了。堆叠注入原理在SQL中,...https://blog.csdn.net/qq_26406447/article/details/90643951

1. 将已有的表words改名为words1

2. 表1919810931114514改名为words

3. 将新的表words中的列flag改为id

构造payload

1';RENAME TABLE `words` TO `words1`;RENAME TABLE `1919810931114514` TO `words`;ALTER TABLE `words` CHANGE `flag` `id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;show columns from words;#

最后用1’ or 1=1 #查询就得到flag


三、总结

1. 注入语句中的关键字被形如preg_match()、mb_substr()、mb_subpos()等函数检测过滤后需要考虑其他方法,如堆叠注入,布尔盲注,时间盲注等

2. 注入大致步骤:检测能否注入->检测注入类型->order by查列数->show databases查库->show tables查表->show columns from TABLE_NAME查字段->select或handler开文件

3.  多看大佬的文章!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值