0x00 设置安全水平
小白刚接触DVWA,先从简单的开始
00x1 Brute Force(蛮力:爆破)
0x02 开启firefox代理
首选项
0x03 使用brupsuite爆破
输入:
admin
123456
点击登入
在http history中找到目标,然后将它送至爆破页
转到爆破页:
设置爆破参数,这里只需要设置两个爆破参数
一个是username,另一个是password,
所以这里先清除自动添加的爆破标记的参数
然后选中需要爆破参数的值的位置加上爆破标记
设置Attack Type
Attack Type说明:
Sniper:当涉及到一个爆破参数时使用(一个未知)
Battering ram :涉及多个爆破参数,但是所有参数是同一个值,同时枚举相同值
Pitchfork:涉及多个爆破参数,但是所有参数是不一定是同一个值,假设此时有两个爆破列表:A = [a,b,c,d] ,B = [1,2,3,4],枚举是:a 1,b 2,c 3,d 4(一一对应同时枚举)
Cluster bomb:涉及多个爆破参数,但是所有参数是不一定是同一个值,
假设此时有两个爆破列表:A = [a,b,c,d] ,B = [1,2,3,4],枚举是:a 1,a 2,a 3,a 4,b 1,b 2,b 3,b 4…d 1,d 2,d 3,d 4(两个列表的全部组合)
这里我们采用最后一种演示:
0x04 扩展:sql注入
分析源码发现可以sql注入来绕过密码验证
<?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 = mysqli_query($GLOBALS["___mysqli_ston"], $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
if( $result && mysqli_num_rows( $result ) == 1 ) {
// Get users details
$row = mysqli_fetch_assoc( $result );
$avatar = $row["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>";
}
((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}
?>
Username:admin' #
Password:不输入或随便输
或者:
admin' or '1=1