1. Brute Force(暴力破解)模块分析
Brute Force(暴力破解),主要指黑客通过利用密码字典,采用穷举法来进行猜解用户口令,如用户名和用户密码。这也是现在最为广泛的攻击手法之一。
该模块主要功能是输入用户名和用户密码,来进行用户名以及密码的验证。主要页面如图所示:
首先我们把安全级别设置为Low级别。查看源代码:
LOW
<?php
if( isset( $_GET[ 'Login' ] ) ) {
// Get username
$user = $_GET[ 'username' ];
// Get password
$pass = $_GET[ 'password' ];
$pass = md5( $pass );
// Check the database
$query = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
$result = mysql_query( $query ) or die( '<pre>' . mysql_error() . '</pre>' );
if( $result && mysql_num_rows( $result ) == 1 ) {
// Get users details
$avatar = mysql_result( $result, 0, "avatar" );
// Login successful
echo "<p>Welcome to the password protected area {$user}</p>";
echo "<img src=\"{$avatar}\" />";
}
else {
// Login failed
echo "<pre><br />Username and/or password incorrect.</pre>";
}
mysql_close();
}
?>
我们可以看到Low级别的代码中,只通过if( isset( $_GET[ 'Login' ] ) )
来对Login参数是否被设置进行了验证。(isset函数在php中用来检测变量是否设置,该函数返回的是布尔类型的值,即true/false),对输入的参数username和password没有进行任何过滤,可以看到username和password参数存在sql注入漏洞。同时也没有进行过任何防止暴力破解的操作。由于我们要验证的是暴力破解,所以sql注入获得用户名和密码的方式可以自己操作得出。
2. 使用工具burpsuite完成暴力破解
工具网上都有,可以自行下载安装即可。
- 打开burpsuite,同时,在浏览器中配置代理,如图所示:
- 在DVWA Brute Force模块中任意输入用户名密码进行提交操作,通过burpsuite对数据包进行拦截。
将拦截到的数据右键发送到intruder模块。
进入intruder模块,查看数据包情况,我们这次只需要暴力破解username和password字段,