SQL注入--万能密码原理解释

“感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友。您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!🚀✨

登录情况下的万能密码构造闭合是这样的,有些数据库判断是使用 用户名 and 密码 形式和数据库做比较,虽然是逻辑与,账户和密码都要登录相同的,但是由于SQL语句中逻辑运算符具有优先级

a'or 1=1 #   // 具体前面如何构造还是看闭合情况,SQL就是看是否带入然后看如何闭合然后正常语句爆破

假设后端对账户密码是这样处理,后半部分是我们所输入的,原本的单引号后续语句被#注释,那么数据库语句这样输入就会是下面这段

Select user_id,user_type,email From users Where user_id='admin' And password='a'or 1=1'#' 

SQL语句优先级别是 = > and >or 并且具有传递性,利用这个上方语句其实被拆分为了两端,or为逻辑 这样or是一边为真就为真,我们构造1=1传入到数据库就会是恒真的,所以整个登录流程就会变成true从而实现万能密码

Select user_id,user_type,email From users Where user_id='admin' And password='a'

or

1=1'#

测试代码为单引号报错实际上是因为多出来了单引号,因为和闭合是一样的,所以在基础上构造闭合语句,剩下真正的单引号我们就会在最后利用#去注释 这样我们真正的就不会报错 我们也可以插入新的sql语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值