dvwa万能密码的问题解决

admin 2021年4月10日08:18:50评论150 views字数 858阅读2分51秒阅读模式

dvwa万能密码的问题解决

关于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语句中同时出现andorand 执行的优先级比 or 

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


dvwa万能密码的问题解决


dvwa万能密码的问题解决

dvwa万能密码的问题解决


1、Brute Force下的结果及原因



1.1、结果

图一,这里显示不能登录



dvwa万能密码的问题解决


图二登录成功


dvwa万能密码的问题解决


1.2、原因


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


dvwa万能密码的问题解决


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


dvwa万能密码的问题解决


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


dvwa万能密码的问题解决


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

2.1、结果


这里显示能登录


dvwa万能密码的问题解决


2.2、原因


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


dvwa万能密码的问题解决


3、总结


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

还有其中的admin or 1 or 1会查询所有结果,而admin or 1=1,admin or 1只返回admin一个结果。

dvwa万能密码的问题解决

本文始发于微信公众号(疯猫网络):dvwa万能密码的问题解决

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月10日08:18:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   dvwa万能密码的问题解决http://cn-sec.com/archives/331236.html

发表评论

匿名网友 填写信息