网络安全 DVWA通关指南 DVWA Brute Force (爆破)

DVWA Brute Force (爆破) 参考文献 WEB 安全靶场通关指南 Low 1、分析网页源代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 <?php // 检查是否存在"Login" GET 参数,这通常是提交登录表单后触发的动作 if( isset( $_GET[ 'Login' ] ) ) { // 获取POST方式提交的用户名 $user = $_GET[ 'username' ]; // 注意:这里应当使用 $_POST 而非 $_GET 来获取表单数据,因为登录通常涉及敏感信息,推荐使用 POST 方法 // 获取POST方式提交的密码,并使用md5函数对其进行哈希加密(注意:MD5已经不再安全,应使用更安全的加密算法如bcrypt) $pass = $_GET[ 'password' ]; // 同上,此处应改为 $_POST['password'] $pass = md5( $pass ); // 这里假设密码在数据库中是以MD5形式存储的 // 创建SQL查询语句,检查数据库中是否存在匹配的用户名和密码 $query = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';"; // 执行SQL查询,连接数据库并处理潜在错误 $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 ) { // 获取匹配用户的详细信息 $row = mysqli_fetch_assoc( $result ); // 提取用户头像URL $avatar = $row["avatar"]; // 登录成功,构造欢迎消息并显示用户头像 $html .= "<p>Welcome to the password protected area {$user}</p>"; $html .= "<img src=\"{$avatar}\" />"; // 显示用户的头像图片 } else { // 登录失败,输出错误提示信息 $html .= "<pre><br />Username and/or password incorrect.</pre>"; } // 关闭数据库连接 ((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res); } // 结束 if(isset($_GET['Login'])) ?> 2、使用管理员admin登录,密码尝试123,提示错误 ...

九月 27, 2024 · 5 分钟 · 2370 字