代码审计——DVWA Brute Force(暴力破解)

DVWA是一款渗透测试的靶场。非常适合新手来练习渗透同时也是练习代码审计的入门之选。

关于Brute Force(暴力破解)审计

LOW等级代码

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
		$html .= "<p>Welcome to the password protected area {
     $user}</p>";
		$html .= "<img src=\"{
     $avatar}\" />";
	}
	else {
   
		// Login failed
		$html .= "<pre><br />Username and/or password incorrect.</pre>";
	}

	((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}

?>

在这里插入图片描述
这里我们看到 user和pass变量接受 传递过来的值,密码经过MD5加密 拼接SQL语句直接执行 这里没有加任何的过滤由此得出这里存在SQL注入,我们在SQL语句后面加上var_dump($query);来查看执行的SQL语句。
在这里插入图片描述
发现是单引号闭合而且没有存在过滤 我们可以通过构造 万能密码 进行登陆
在这里插入图片描述
'or ‘1’ ='1 然后登陆 成功;这里也可以进用burp精心暴力破解 这里我就不再演示了
在这里插入图片描述

Medium等级代码

<?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 input
	$pass = $_GET[ 'password' ];
	$pass = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值