• 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

  • 相关阅读:
    grafana调试查询指标数据
    crontab 误删除恢复
    在MySQL中实现Rank高级排名函数
    shell脚本变量替换
    Mysql 与 Oracle的区别
    shell脚本对字符串变量取值的处理
    【Slick SQL】如何将列表参数传递到in中
    安装VUE调试工具VUEDEVTOOLS
    【Ambari Hive】设置命令行set白名单
    查看Oracle的表结构
  • 原文地址:https://www.cnblogs.com/zhengna/p/12748355.html
Copyright © 2020-2023  润新知