温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SQL注入绕过登录验证

发布时间:2020-07-18 14:18:16 来源:网络 阅读:2960 作者:小毒物 栏目:安全技术

最近测试发现一个登录处的SQL注入,不用密码即可登录系统。
首先在登录处输入“111'”,出现报错页面如图:判断可能存在注入
SQL注入绕过登录验证
进一步利用万能用户名测试admin' or '1'='1,不用输密码成功登录。
分析一下这个payload:
从报错信息可以看出查询语句是:

select * from  xxxx where username=' ' and pwd=' '

当我们输入payload之后就变成如下:

select * from  xxxx where username=' admin' or '1'='1' and pwd=' '

这个查询语句执行之后的结果就是:username='admin' 是true(系统存在这个用户名),'1'='1'是true(后面发现这里是否为true也不重要),pwd=''是false。
true or true and false,由于and的优先级高于or,先运算true and false结果是false,再运算true or false结果是true(or运算:所有参数中的任意一个逻辑值为真时即返回TRUE(真))所以登录成功。
然后我利用sqlmap跑了一下,发现必须把admin加上才能成功,如果不加是跑不出来的,如图:
SQL注入绕过登录验证
SQL注入绕过登录验证
感觉这样的话,需要知道一个正确得用户名才行,还是有一定得局限性,我利用别的万能账户都不行,比如'or '1'='1--直接提示用户名密码错误,'or '1'='1'--又会出现错误信息。
之前也有遇到注入的参数必须有值才可以进行注入想必和页面返回有关系?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI