当前位置: 首页 > news >正文

upload-labs靶场学习记录2

pass-2

打开靶场
在这里插入图片描述
提示这关与mime进行检查。
所以我们上传1.php文件并且抓包。
在这里插入图片描述
抓到包,我们修改对应的Content-Typed的类型为image/jpeg来伪造数据,让后端以为我们传入的是一个图片文件。
在这里插入图片描述
点击发送查看回传,复制图片的链接。
打开蚁剑,测试连接。
在这里插入图片描述
连接成功,说明上传成功。

查看源代码

在这里插入图片描述

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name']            
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '文件类型不正确,请重新上传!';
        }
    } else {
        $msg = UPLOAD_PATH.'文件夹不存在,请手工创建!';
    }
}

可以看到后端对文件传入类型进行了判断,而我们通过抓包修改了对应的类型,绕过了检验,造成了漏洞的产生。

相关文章:

  • OpenCV图像拼接(2)基于羽化(feathering)技术的图像融合算法拼接类cv::detail::FeatherBlender
  • CVPR2025 | 对抗样本智能安全方向论文汇总 | 持续更新中~
  • 《C++智能指针:建议使用 make_shared 代替 shared_ptr》
  • PostgreSQL 数据库源码编译安装全流程详解 Linux 8
  • SysVinit和Systemd的系统运行级别
  • 探秘 WRF DA:多维度剖析其在气象研究中的卓越效能
  • C++具名转型的功能和用途
  • 奇怪的异形选项卡样式、弧形边框选项卡
  • Go语言中package的使用规则《二》
  • java基础之windows电脑基础命令
  • 【其他】在线安装DataEase后无法远程访问
  • k近邻图(knn-graph)和局部线性嵌入图(LLE-graph)的相似性和区别
  • Python JSON模块loads、load、dump、dumps详解
  • Sql Server 索引性能优化 分析以及分表
  • 【LeetCode】大厂面试算法真题回忆(37)--知识图谱新词挖掘
  • 大数据从入门到入魔系列————探索大数据前世今生之迷
  • Unity | 游戏数据配置
  • SpringBoot整合MQTT最详细版(亲测有效)
  • 创建自己的github.io
  • Jmeter插件下载和配置
  • 中使馆:奉劝菲方有关人士不要在台湾问题上挑衅,玩火者必自焚
  • 招行一季度净利372.86亿降2.08%,营收降逾3%
  • 初步结果显示加拿大自由党赢得大选,外交部回应
  • 癌症来临前,可能伪装成这几种常见病,千万别大意
  • 发布亮眼一季度报后,东阿阿胶股价跌停:现金流隐忧引发争议
  • 港理大公布多项AI+医工成果,助港建设国际医疗创新枢纽