下面来分析一下DVWA中的Brute Force暴力破解,在页面的文本框中输入用户名和密码,如果输入错误,会出现错误提示。
正确的密码跟DVWA登录密码一样,都是password。正确输入的页面:
所谓的暴力破解,就是在不知道密码的情况下,通过软件挨个密码进行尝试,从而最终将密码破解出来。
我们还是先选择low级别,查看一下源码。
有了之前的基础,很容易就可以发现这段代码中存在SQL注入漏洞,问题就出在下面这行语句:
$qry = "SELECT * FROM `users` WHERE user='$user' AND password='$pass';"; |
比如我们输入用户名“admin’ or ‘a’=’a”,那么无论输入什么密码都可以正常登录,这就是经典的密码绕过漏洞。
原理其实很简单,只要将那段用户名代入到代码中就可以理解了。
$qry = "SELECT * FROM `users` WHERE user='admin’ or ‘a’ = ‘a' AND password='$pass';"; |
因为了有了“or ‘a’ = ‘a'”的存在,所以后面的“AND password='$pass'”密码验证根本就没有发挥作用。
本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1722500