条件竞争之文件上传

一、条件竞争介绍

条件竞争,在程序员日常的Web应用开发中,通常不如其他漏洞受到的关注度高。因为普遍的共识是,条件竞争是不可靠的,大多数时候只能靠代码审计来识别发现,而依赖现有的工具或技术很难在黑盒灰盒中识别并进行攻击。即便该漏洞很难被发现,也仍然有很多企业曾被曝出相关漏洞,例如星巴克咖啡、小密圈的App 产品等。今天要讲解的条件竞争漏洞仅限于Web应用之中。

二、漏洞理解

条件竞争漏洞,官方概念是“发生在多个线程同时访问同一个共享代码、变量、文件等没有进行锁操作或者同步操作的场景中。” 这个漏洞存在于操作系统、数据库、web等多个层面,像有名的脏牛(dirty cow)。大白话就是同一个共享资源被多个进程同时都想要使用,而没有设计“上锁”,造成异常。

image-20220915163031670

2.1 漏洞原理

条件竞争是指一个系统的运行结果依赖于不受控制的时间的先后顺序,当这些不受控制的事件并没有按照开发者想要的方式执行时,就会出现bug。

当我们系统中大量对资源进行共享,如果处理不当的话,就会产生条件竞争漏洞。条件竞争涉及到的就是操作系统中所提到的进程或者线程同步的问题。

当一个程序的结果依赖于线程的顺序,处理不当就会导致条件竞争。

2.2 产生条件

并发共享对象、改变对象是条件竞争产生的必要条件

并发

  • 存在至少两个并发执行流:线程、进程、任务等级别的执行流

共享对象

  • 多个并发流会访问同一对象。常见的共享对象有共享内存,文件系统,信号。一般来说,这些共享对象是用来使得多个程序执行流相互交流。我们称共享对象的代码为临界区,在正常写代码时,这部分应该加锁。

改变对象

  • 至少有一个控制流会改变竞争对象的状态,因为如果程序只是对对象进行读操作,那么并不会产生条件竞争。

三、实验

1、在小皮面板搭建一个站点,访问

2、用哥斯拉生成一句话木马,并命名为shell.php5,进行首次上传

发现上传的木马被删除了。

3、用fiddler抓包,并发1000次请求

成功看木马。

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

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

相关文章

项目实战:数字孪生可视化大屏幕,实现生产过程实时监控

项目介绍 智慧工厂数据可视化系统,融合工业大数据、物联网、人工智能等各类信息技术,整合厂区现有信息系统的数据资源,实现数字孪生工厂、设备运维监测、智能管网监测、综合安防监测、便捷通行监测、能效管理监测、生产管理监测、仓储物流监…

SiC电机控制器(逆变器)发展概况及技术方向

SiC电机控制器(逆变器)发展概况及技术方向 1.概述2.电动汽车动力系统设计趋势3.栅极驱动器和驱动电源配置4.结论 tips:资料来自网上搜集,仅供学习使用。 1.概述 2022年到2023年,第三代半导体碳化硅被推上了新的热潮。…

使用邮箱发送验证码前端完成登录

前言 在前一篇使用C#发送邮箱验证码已经完成使用.net core web api写了完成往登录邮箱发送验证码的接口。现在就用前端调用接口模拟登录功能。 接口 public class ApiResp{public bool Success { get; set; }public int Code { get; set; }public int count { get; set; }pu…

案例介绍|钡铼助力2023年全国职业院校技能大赛工业网络智能控制与维护赛项

如今,越来越多的企业开始意识到数字制造和工业物联网已经成为工业自动化中大规模生产的核心驱动力。这其中,工业网络作为基础设施,是实现工厂设备联网与数据采集,建设数字工厂的基础和前提,甚至成为关乎数字工厂能否真…

【AIGC工具】我找到了使用大模型问答的最短路径!

大家好,我是豆小匠~ 好久没介绍提高效率的工具啦,这次来介绍一个UTools的骚操作,可以极速打开LLM进行提问! 完成后的效果是: 快捷键调出输入框;2. 输入问题;3. 选择模型;4. 回车提…

Embedded-Project项目介绍

Embedded-Project项目介绍 Server后端项目后端启动连接数据库启动时可能遇到的问题架构介绍 web前端项目前端启动启动时可能遇到的问题架构介绍 前后端分离开发流程 项目地址: https://github.com/Catxiaobai/Embedded-Project Server后端项目 系统后端项目&#…

C++ 类的内存分布

文章目录 1 . 前言2 . 无继承,无虚函数3 . 无继承,有虚函数4 . 单一继承,无虚函数5 . 单一继承,有虚函数,虚析构6 . 多重继承7 . 菱形继承8 . 虚拟继承9 . 总结 【极客技术传送门】 : https://blog.csdn.net/Engineer_…

【机器学习】循环神经网络(二)-LSTM示例(keras)国际航空乘客问题的回归问题...

使用 Keras 在 Python 中使用 LSTM 循环神经网络进行时间序列预测 国际航空乘客问题的回归问题 这个文件是一个CSV格式的数据集,它包含了从1949年1月到1960年12月的每个月的国际航空乘客的总数(以千为单位)。第一行是列名,分别是&…

案例099:基于微信小程序的外卖小程序的研究与开发

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

期货日数据维护与使用_日数据维护_日数据更新

目录 写在前面: 下载日数据 下载“新增合约”日数据 下载“待更新合约”日数据 日数据文件 “选择日数据所在目录”按钮点击 “执行”按钮点击 sqlite3代码 按钮点击后执行的代码 子线程代码 写在前面: 本文默认已经创建了项目,如…

pytorch集智-2单车预测器

完整代码在个人主页简介链接pytorch路径下可找到 1 单车预测器1.0 1.1 人工神经元 对于sigmoid函数来说,w控制函数曲线的方向,b控制曲线水平方向位移,w控制曲线在y方向的幅度 1.2 多个人工神经元 模型如下 数学上可证,有限神经…

篇三:让OAuth2 server支持密码模式

由于Spring-Security-Oauth2停止维护&#xff0c;官方推荐采用 spring-security-oauth2-authorization-server&#xff0c;而后者默认不支持密码授权模式&#xff0c;本篇实战中采用的版本如下&#xff1a; <dependency><groupId>org.springframework.security<…