SQL注入 | 二次注入

SQL注入 | 二次注入

1.二次注入介绍

update 表名 set 字段名修改的内容 where 限制条件

在这里插入图片描述
用户注册,用户使用浏览器向网站服务器发送注册请求,此时网站服务器与数据库服务器进行交互,而当用户登录时,忘记密码或想修改用户密码,执行的SQL语句是update 表名 set 修改的内容 where 限制条件

2.二次注入的原理

二次注入的原理,在第一次进行数据库插入数据的时候,仅仅只是使用了addslashes 或者是借助get_magic_quotes_gpc对其中的特殊字符进行了转义,但是addslashes有一个特点就是虽然参数在过滤后会添加“1”进行转义,但是“)”并不会插入到数据库°中,在写入数据库的时候还是保留了原来的数据。
在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次进行需要进行查询的时候,直接从数据库中取出了脏数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入。比如在第一次插入数据的时候,数据中带有单引号,直接插入到了数据库中;然后在下一次使用中在拼凑的过程中,就形成了二次注入。

2.二次注入代码分析

发现注册的代码中,没有过滤--
在这里插入图片描述
更改密码的代码过程中admin'--空格-,就可以闭合前面的单引号,注释掉后面的代码,空格中间可以插入我们想要的SQL语句
在这里插入图片描述

3.二次注入利用

我们以sqli-labs-less24为例
1.查看security数据库users表中的内容
在这里插入图片描述
2.注册用户admin'-- -,修改密码查看数据库内容
在这里插入图片描述
3.注册一个admin’-- -的账号,密码任意
在这里插入图片描述
4.终端查看数据库的内容,发现成功

select * from users;

在这里插入图片描述
5.我们尝试使用admin'-- -登录查看
在这里插入图片描述
6.输入正确的密码,然后修改密码
在这里插入图片描述
7.查看数据库中的内容

在这里插入图片描述
8.当我们成功修改密码之后,查看数据库中的内容发现,admin的密码被修改,然而admin'-- -的密码没被修改

在这里插入图片描述

4.二次注入危害

1.注入payload触发二次SQL注入
2.注入payload触发xss攻击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值