0


文件上传之条件竞争

文章目录


前言

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


一、什么是条件竞争?

在上传文件源代码里面有校验上传的文件,文件直接上传,上传成功后才进行判断;如果文件格式符合的情况下,则重命名,如果文件格式不符合要求,就将文件删除。
由于服务器并发处(同时)理多个请求,假如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,这样我们可以进行更多的操作。希望大家看完后能有所收获,喜欢的同学可以点赞收藏哦!


本文转载自: https://blog.csdn.net/qq_53829555/article/details/126970483
版权归原作者 旖蔚安全实验室 所有, 如有侵权,请联系我们删除。

“文件上传之条件竞争”的评论:

还没有评论