MYSQL的二次注入和约束攻击

二次注入

简介
在第一次进行数据库插入数据的时候,过滤不严格,在写入数据库的时候还是保留了原来的数据,但是数据本身还是恶意数据。在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次进行需要进行查询的时候,直接从数据库中取出了脏数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入。比如在第一次插入数据的时候,数据中带有单引号,直接插入到了数据库中;然后在下一次使用中在拼凑的过程中,就形成了二次注入。

例子

select * from users where username ='$_SESSION['username']'

登录/注册处的SQL语句都经过了addslashes函数、单引号闭合的处理,且无编码产生的问题。

对于上述举的语句我们可以先注册一个名为admin’ # 的用户名,因为在注册进行了单引号的转义,故我们并不能直接进行insert注入,最终将我们的用户名存储在了服务器中

注意:反斜杠转义掉了单引号,在mysql中得到的数据并没有反斜杠的存在

在我们进行登录操作的时候,我们用注册的admin’ # 登录系统,并将用户部分数据存储在对于的SESSION中,

如$_SESSION[‘username’]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值