基本的SQL字符型漏洞注入练习

我们依然用pikachu测试平台来练习SQL字符型漏洞的测试

在这里插入图片描述
上图我们随便输入了一个名字,网页会显示UID为3,和邮箱信息,那我们输入一个不存在的username,会发现
在这里插入图片描述
网页会显示“您输入的username不存在,请重新输入”,而且我们会发现它的请求是在uil中提交的,我们依然按照上次的逻辑判断它对数据库提交的请求应该是这样的

select 字段1,字段2 from 表名 where username='kobe'

这时候我们发现,我们提交的请求被双引号括起来了,顺便提一下,基于字符型的SQL注入即存在SQL注入漏洞的URL参数为字符串类型(需要使用单引号表示)。

字符型SQL注入的关键—–单引号的闭合

mysql数据库对于单引号的规则如下:

  1. 单引号必须成对出现,否则数据库就会报错。
  2. 如果两个单引号之间内容为空,数据库自动忽略。
    没加单引号,报错
    加了单引号,正常
    在这里如果我们还想用kobe or 1=1 它是不会成立的因为,字符型SQL是带有单引号的,or 1=1会被当成username被一起处理掉,而这个用户名显然是不存在的,所以他还是会显示“您输入的username不存在,请重新输入”,并没有得到我们想要的结果
select 字段1,字段2 from 表名 where username='kobe or 1=1'

解决办法很简单,前面的双引号我们用一个双引号给解决掉,后面的双引号我们用#给注释掉

kobe' or 1=1#
它整段代码就会变成select 字段1,字段2 from 表名 where username='kobe' or 1=1#'

接下来我们用提交一下试试。
在这里插入图片描述
发现我们成功地将所有信息套了出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值