DVWA-5.1 File Upload(文件上传)-Low

Low Level

查看源码

<?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为空,则返回的文件名包含后缀名,反之不包含后缀名。

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

漏洞利用

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

上传文件hack.php(一句话木马)

上传成功,并且返回了上传路径

打开中国菜刀,右键添加,

地址栏填入上传文件所在路径http://172.16.135.47/dvwa/hackable/uploads/hack.php,

参数名(一句话木马口令)为hello。

然后菜刀就会通过向服务器发送包含apple参数的post请求,在服务器上执行任意命令,获取webshell权限。

可以下载、修改服务器的所有文件。

可以打开服务器的虚拟终端等

 

参考:https://www.freebuf.com/articles/web/119467.html

 

posted @ 2020-05-06 16:42  zhengna  阅读(551)  评论(0编辑  收藏  举报