用户
搜索
  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 45 天

    连续签到: 45 天

    [LV.5]常住居民I

    i春秋-见习白帽

    Rank: 3Rank: 3

    31

    主题

    71

    帖子

    1241

    魔法币
    收听
    0
    粉丝
    1
    注册时间
    2020-10-2
    发表于 2021-4-7 22:27:13 63699
    本帖最后由 Johnson666 于 2021-4-7 22:31 编辑

    关于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种比较经典的万能密码
    WTO5J0~WV1$TS@YVFW3`E5D.png 3R3CQF389GDMK)2)$GM%)DC.png
    }YQG2V]NP6)ZM7K_MO`2{[9.png
    1、Brute Force下的结果及原因
    1.1、结果

    图一,这里显示不能登录
    {2MV700U$N%0EO~]S$Q8B.png

    图二登录成功
    Z571UI(O{CA[XTWAIFUCWSO.png
    1.2、原因
    在Brute Force源码中用红笔括号起来的代码表示从数据库中得到的结果只有一条才符合条件
    D2V8@9_730~{_QJFGTV0Q.png
    而在数据库中查询图一中的username有不止一条结果符合,查询到超过一条结果,所以图一错误
    749F3[TME64O_R%H[8]]Q_Q.png
    在数据库中查询图二中的username只有一条结果符合,所以图二正确
    UN5N[92Z(]@{PC@V$%U]C}K.png
    2、login.php登录界面的结果及原因

    2.1、结果

    这里显示能登录
    ZI(G@(JW~G3A8%BDWC8V$L6.png

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

    P~G@1UB4BZXDEFY3Y)F@1OH.png

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






    发表于 2021-4-8 11:14:52
    现在还有万能密码吗
    使用道具 举报 回复
    同问???
    使用道具 举报 回复
    有的,最近运气好刚试出一个,还是授权站点
    使用道具 举报 回复
    发表于 2021-4-8 17:25:43
    大佬带带我
    使用道具 举报 回复
    发表于 2021-4-8 17:39:54

    我是弟弟
    使用道具 举报 回复
    发表于 2021-4-9 14:47:45
    Johnson666 发表于 2021-4-8 13:11
    有的,最近运气好刚试出一个,还是授权站点

    应该不是很常见。
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册