DVWA : Brute Force

这篇博客详细介绍了DVWA中的Brute Force攻击,包括Low、Medium和High三个等级的防御措施。在Low等级中,通过Burpsuite进行字典攻击成功破解,而在Medium等级中,由于`mysqli_real_escape_string()`的使用,手工注入失效,但仍可通过Burpsuite破解。到了High等级,服务器引入了随机token,需要同时爆破密码和token。文中还详细讲述了每个等级的PHP函数使用,如`isset()`、`mysqli_query()`、`sleep()`等,并提供了攻击与防御的操作步骤。
摘要由CSDN通过智能技术生成

等级:Low

PHP代码解析

<?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);
}

?>

1.isset() PHP isset() 函数

函数用于检测变量是否已设置并且非 NULL,如果指定变量存在且不为 NULL,则返回 TRUE,否则返回 FALSE。

2.$_GET PHP $_GET 变量

用于收集来自 method="get" 的表单中的值,$_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值。$_GET 变量用于收集来自 method="get" 的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符)。

3.md5() PHP md5() 函数

 PHP String 函数

md5() 函数计算字符串的 MD5 散列,md5() 函数使用 RSA 数据安全,包括 MD5 报文摘要算法。

语法:md5(string,raw)

参数 描述
string 必需。规定要计算的字符串。
raw

可选。规定十六进制或二进制输出格式:

  • TRUE - 原始 16 字符二进制格式
  • FALSE - 默认。32 字符十六进制数

返回值:如果成功则返回已计算的 MD5 散列,如果失败则返回 FALSE。

4.mysqli_query() PHP mysqli_query() 函数

mysqli_query() 函数执行某个针对数据库的查询。

语法:mysqli_query(connection,query,resultmode);

参数 描述
connection 必需。规定要使用的 MySQL 连接。
query 必需,规定查询字符串。
resultmode

可选。一个常量。可以是下列值中的任意一个:

  • MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)
  • MYSQLI_STORE_RESULT(默认)

返回值:针对成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,将返回一个 mysqli_result 对象。针对其他成功的查询,将返回 TRUE。如果失败,则返回 FALSE。

5.$GLOBALS 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值