淘先锋技术网

首页 1 2 3 4 5 6 7


一、环境

虚拟机:OWASP Broken Web Apps VM v1.2
WEB界面:(Security Level:medium)
在这里插入图片描述

二、使用步骤

1.查看PHP代码

 <?php
    if (isset($_POST['Upload'])) {

            $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/";
            $target_path = $target_path . basename($_FILES['uploaded']['name']);
            $uploaded_name = $_FILES['uploaded']['name'];
            $uploaded_type = $_FILES['uploaded']['type'];
            $uploaded_size = $_FILES['uploaded']['size'];

            if (($uploaded_type == "image/jpeg") && ($uploaded_size < 100000)){


                if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {
                
                    echo '<pre>';
                    echo 'Your image was not uploaded.';
                    echo '</pre>';
                    
                  } else {
                
                    echo '<pre>';
                    echo $target_path . ' succesfully uploaded!';
                    echo '</pre>';
                    
                    }
            }
            else{
                echo '<pre>Your image was not uploaded.</pre>';
            }
        }
?> 

分析:代码加入了限制条件,上传文件的类型为image/jpeg,且限制上传文件大小为100000字节,上传一句话木马,通过burp修改文件类型为image/jpeg,就能上传成功,最后通过蚁剑连接

2.上传一句话木马

1.打开burp,浏览器使用代理模式
在这里插入图片描述
在这里插入图片描述
2.选择一句话木马文件,上传,并修改burp上文件类型
在这里插入图片描述
3.点击转发,浏览器成功上传一句话木马文件
在这里插入图片描述

3.使用蚁剑工具连接

在这里插入图片描述
可以查看到上传的文件
在这里插入图片描述


总结:PHP $_FILES函数

当客户端提交后,我们获得了一个$_FILES 数组

$_FILES数组内容如下:
$_FILES[‘myFile’][‘name’] 客户端文件的原名称。
$_FILES[‘myFile’][‘type’] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES[‘myFile’][‘size’] 已上传文件的大小,单位为字节。
$_FILES[‘myFile’][‘tmp_name’] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。