文件上传之条件竞争


前言

随着科技不断的发展,网络安全成为了一个大家都要注意与关心的话题,今天小编就带大家了解与复现一下文件上传漏洞中的条件竞争漏洞


一、什么是条件竞争?

在上传文件源代码里面有校验上传的文件,文件直接上传,上传成功后才进行判断;如果文件格式符合的情况下,则重命名,如果文件格式不符合要求,就将文件删除。
由于服务器并发处(同时)理多个请求,假如a用户上传了一个文件,b用户访问a用户的文件就会出现以下三种情况:
1.访问时间点在上传文件之前,没有此文件
2.访问时间在上传文件之后,且服务器还未将其删除,文件存在
3.访问时间点在服务器删除文件之后,文件不存在
我们利用的就是第二个情况,下面我们就复现一下吧

二、实现步骤

1.打开phpstudy进入网站根目录,打开upload-labs-env靶场并打开17关

进入17关
注意我们浏览器要配置burpsuite的代理,且有些浏览器只能用本机ip地址才能抓到包,用127.0.0.1burpsuite抓不到包

2.我们制作一个木马php代码(作用是查看服务器的版本)

代码如下(示例):

<?php @eval($_POST['cmd']);?>

3.打开抓包工具burpsuite进行抓包

我们首先抓住a用户上传文件的请求,并将其发往爆破(intruder)模块
在这里插入图片描述
然后抓住b用户访问a用户的包,也发往爆破模块
在这里插入图片描述

注意:上方蓝框里的地址是我们前期进行信息搜集得来的,必须要知道上传文件的存放路径才能实现这个漏洞

4. 进入burpsuite的爆破模块进行配置

首先我们点击a用户上传文件的包,点击Positions选项,再点击右边的Clear,因为我们不需要设置参数
在这里插入图片描述
然后我们要配置payloads
payload type 我们选择null payloads
Payload options
我们选择Continue indefinitely(无限循环抓包)
在这里插入图片描述
然后再点击options
我们将Number of threads(线程数)设置为200(不要太低就行)
在这里插入图片描述

同样的方法配置b用户访问的请求包
同时点击两个已经配置好的请求包的start attack
在这里插入图片描述
最后我们找到b用户的请求包length最大且相应码为200的request,点击respose里的render即可查看这个服务器版本
在这里插入图片描述

总结

这个条件竞争我们上面是做的最简单的演示,我们还可以通过上传一句话木马连接到蚁剑拿到shell,再转交到kali的cs会话中进一步getshell,这样我们可以进行更多的操作。希望大家看完后能有所收获,喜欢的同学可以点赞收藏哦!

  • 19
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
条件竞争(Race Condition)是指在多线程或多进程的环境中,多个线程或进程对共享资源进行问和操作时,由于彼此执行顺序的不确定性,导致最终结果与期望不符的情况。在上传实验(upload-labs)中,条件竞争可能会导致以下问题: 1. 文件覆盖:多个线程同时上传同一个文件,最后只有一个线程的文件被保留,其他线程上传的文件被覆盖。 2. 文件丢失:多个线程同时上传文件,由于并发操作导致某些文件上传操作未完成就被取消或覆盖,导致文件丢失。 3. 数据损坏:多个线程同时对同一个文件进行写入操作,由于并发写入导致数据被部分覆盖或乱序写入,导致文件内容损坏。 为了避免条件竞争带来的问题,可以采取以下措施: 1. 使用互斥锁(Mutex)或信号量(Semaphore)等同步机制来确保对共享资源的互斥访问,保证每次只能有一个线程或进程能够访问该资源。 2. 使用文件名加密或唯一标识符来区分不同线程或进程上传的文件,避免文件覆盖和丢失。 3. 对上传的文件进行合理的命名规则和目录结构,避免文件名冲突和混乱。 4. 对上传操作进行事务处理,保证上传操作的原子性,即要么完全成功,要么完全失败,避免数据损坏的发生。 5. 合理设置并发上传的线程或进程数量,避免过多的并发导致性能下降或竞争加剧。 通过以上措施可以减少条件竞争带来的问题,确保上传操作的正确性和可靠性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值