电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 3750 人浏览分享

dvwa万能密码的问题解决

[复制链接]
3750 0
关于dvwa万能密码的问题解决

既然说到了万能密码 这里就要先说一说万能密码的原理了


核心原理:
构造数据库操作命令的语句:
    select * from admin where user=‘$name’ and password=‘$pwd’
当提交用户名admin,密码123456时:
    select * from admin where user=‘admin' and password=‘123456’
当提交用户名admin,密码1’ or ‘1’=‘1时:
select * from admin where user=‘admin’ and password=‘1’or ‘1’=‘1’
当AND和OR运算符同时出现时,先进行AND运算,再进行OR运算, 而‘1’=‘1’恒成立
因此只要数据库中有记录,返回的结果集一定不为空,即登录必然成功。

同一条SQL语句中同时出现and和or,and 执行的优先级比 or 高

这里列出3种比较经典的万能密码

221947aw9ktb1xyjjx05jh.png

9999.jpg

999.jpg

1、Brute Force下的结果及原因

1.1、结果


图一,这里显示不能登录

998.png

图二登录成功

997.png

1.2、原因

在Brute Force源码中用红笔括号起来的代码表示从数据库中得到的结果只有一条才符合条件

996时间.png

而在数据库中查询图一中的username有不止一条结果符合,查询到超过一条结果,所以图一错误

993.png

在数据库中查询图二中的username只有一条结果符合,所以图二正确

992北京.png

2、login.php登录界面的结果及原因

2.1、结果


这里显示能登录

991.png

2.2、原因

在login.php源码中用红笔括号起来的代码表示从数据库中得到的结果只要非0就符合条件

990.png

3、总结

不同的网站有不同的过滤机制,像这里dvwa的登录界面和Brute Force的过滤机制就不一样了。虽然都是通过
mysql_num_rows这个函数查询数据库结果并返回但是一个是==1 一个是!==0,这就导致结果存在差异。
还有其中的admin or 1 or 1会查询所有结果,而admin or 1=1 admin or 1只返回admin一个结果。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.