pikachu练习(五)

SQL-inject

在学习此部分内容之前,建议先对sql语句进行基本的掌握

1.数字型注入(post)

我们先选择查看一下id为1的用户

之后我们查看上方url,发现没有传参,这便是post型的特点

再次查询前我们抓包,并将其传输到repeater

我们可以大胆猜测此sql语句为

select 字段1,字段2 from 表名 where id = 1

可以看到,我们现在查看到的便是第一个用户的信息,如果我们在id=1后加入or 1=1,也就是永真的条件,再次send,将语句改变为

select 字段1,字段2 from 表名 where id = 1 or 1=1

这样一来网页就会将所有的用户信息全部展示出来

2.字符型注入(get)

我们随机输入一段数字

可以看到,上方的url显示了我们传的参数,所以为get型

若我们正确输入了用户名,就能够成功查询

由于此注入点为字符型,所以我们同样可以猜测一下此sql语句为:

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

所以,如果我们同样想在后面加上一个永真条件,可以先用一个单引号将前面的单引号闭合,再用一个#将后面的单引号注释掉,如下所示:

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

所以我们要在输入框中输入的内容为:kobe' or 1=1#

 查询后,同样会将所有的信息显示出来

3.搜索型注入

我们可以看到,网页返回了所有用户名中带k的,所以sql语句可能为:

select from 表名 where username like ' %k% ';

通过前面对sql语句的学习,我们可以知道%代表可能没有或者有多个字符,就可以完成对含有k的用户名的查询

所以我们要想办法通过合法的方式闭合此特殊符号,并在后面加上一个永真条件,来返回所有的用户信息

select from 表名 where username like ' %k%'or 1=1 #% ';

于是我们通过k%'来闭合前面的符号,用#注释掉后面的字符,条件成功插入

这样,我们在输入框中输入:k%'or 1=1 #,并查询

可以看到,所有的用户信息再次被网页展示出来

4.xx型注入

通过查询后端代码,我们发现,相较于前面,xx型的多了括号

 所以我们在闭合时还应该将括号也闭合掉

') or 1=1#,同样前面的单引号和括号用来闭合,后面的用来注释

点击查询后,我们同样发现所有用户信息被展示出来

5.小结

由上述几种情况不难看出,我们的目的就是闭合掉我们不需要的东西,并注入我们想要看到的,来对网站进行攻击,调取用户的个人信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值