前言
随着科技不断的发展,网络安全成为了一个大家都要注意与关心的话题,今天小编就带大家了解与复现一下文件上传漏洞中的条件竞争漏洞
一、什么是条件竞争?
在上传文件源代码里面有校验上传的文件,文件直接上传,上传成功后才进行判断;如果文件格式符合的情况下,则重命名,如果文件格式不符合要求,就将文件删除。
由于服务器并发处(同时)理多个请求,假如a用户上传了一个文件,b用户访问a用户的文件就会出现以下三种情况:
1.访问时间点在上传文件之前,没有此文件
2.访问时间在上传文件之后,且服务器还未将其删除,文件存在
3.访问时间点在服务器删除文件之后,文件不存在
我们利用的就是第二个情况,下面我们就复现一下吧
二、实现步骤
1.打开phpstudy进入网站根目录,打开upload-labs-env靶场并打开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即可查看这个服务器版本
文章来源:https://www.toymoban.com/news/detail-430539.html
总结
这个条件竞争我们上面是做的最简单的演示,我们还可以通过上传一句话木马连接到蚁剑拿到shell,再转交到kali的cs会话中进一步getshell,这样我们可以进行更多的操作。希望大家看完后能有所收获,喜欢的同学可以点赞收藏哦!文章来源地址https://www.toymoban.com/news/detail-430539.html
到了这里,关于文件上传之条件竞争的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!