文章更新于:2020-04-14
注1:环境搭建参见:搭建DVWA Web渗透测试靶场
注2:实验报告2参见:DVWA 实验报告:2、命令注入
DVWA之暴力破解漏洞
一、前言
说实话,暴力破解是一种低级,也可以说是低技术含量的破解。
主要思想就是猜解所有可能的值,并逐个尝试。
但如果配合适当的字典,往往可以获得比较高的效率。
所以说,暴力破解字典很重要。
选一个好的字典是成功的一半。
二、安全级别:LOW
2.1、查看源码
<?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);
}
?>
2.2、尝试暴力破解
因为源码中没有对失败次数进行限制,所以我们可以尝试每一个可能的组合。
这里我们使用BurpSuite对其进行暴力破解。
- 打开浏览器的代理,设置为BurpSuite。
2. 打开BurpSuite,监听代理。
- 在浏览器进行登录尝试以让BP捕捉。
- 发送到 Intruder
- 设置攻击位置
- 开始攻击
- 获得密码
- 这时就可以拿着这个密码到浏览器里面尝试登录了,发现这就是正确的密码。
三、安全级别:Medium
3.1、查看源码
<?php
if( isset( $_GET[ 'Login' ] ) ) {
// Sanitise username input
$user = $_GET[ 'username' ];
$user = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $user ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
// Sanitise password