文件上传之条件竞争

这篇具有很好参考价值的文章主要介绍了文件上传之条件竞争。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

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


一、什么是条件竞争?

在上传文件源代码里面有校验上传的文件,文件直接上传,上传成功后才进行判断;如果文件格式符合的情况下,则重命名,如果文件格式不符合要求,就将文件删除。
由于服务器并发处(同时)理多个请求,假如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即可查看这个服务器版本
文件上传之条件竞争

总结

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

到了这里,关于文件上传之条件竞争的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过条件竞争实现内核提权

    条件竞争漏洞(Race Condition Vulnerability)是一种在多线程或多进程并发执行时可能导致不正确行为或数据损坏的安全问题。这种漏洞通常发生在多个线程或进程试图访问和修改共享资源(如内存、文件、网络连接等)时,由于执行顺序不确定或没有适当的同步措施,导致竞争条

    2024年02月08日
    浏览(48)
  • vue结合element ui 实现多个文件上传、并删除不符合条件的

    多个文件上传的核心就是将文件append进FormData的实例中,向后台请求时将实例对象传送过去。  多个文件上传,传送的数据: html部分: js部分(this.$request是我自定义的请求方式,大家可以根据自身需要来调整): 1. 我们想要的效果是手动一次性上传多个文件,但是文件选取

    2024年03月20日
    浏览(61)
  • ChatGPT 是一种受到广泛关注的人工智能技术,它具备生成自然语言的能力,能够完成一些简单的文本生成、对话交互等任务。随着人工智能技术的不断发展,有人开始质疑 ChatGPT 是否能取代程序员,推动

    ChatGPT 是一种受到广泛关注的人工智能技术,它 具备生成自然语言的能力 ,能够完成一些简单的文本生成、对话交互等任务。随着人工智能技术的不断发展,有人开始质疑  ChatGPT 是否能取代程序员 ,推动着人类的智能化进程。本文将围绕“ChatGPT 能否取代程序员?”这一问

    2024年02月02日
    浏览(65)
  • 不死马的利用与克制(基于条件竞争)及变种不死马

    不死马即内存马,它会写进进程里,并且无限地在指定目录中生成木马文件 这里以PHP不死马为例 测试代码: 上面代码即为最简单的不死马,其目的是创建一个名为\\\".test.php\\\"的PHP文件,该文件包含一个带有密码验证的后门,允许执行任意PHP代码。 关于代码的详细解释: 1、i

    2024年02月07日
    浏览(41)
  • Spring Boot配置文件:properties 与 yml 的竞争

    本文,我们就要来介绍一下Spring Boot中的配置文件 ,在学习了本文之后,可以很清楚地知道如何在Spring Boot中去配置项目的一些系统设置 首先我们先来聊聊什么是配置文件? 配置文件是一种 文本文件 ,通常用于存储程序的参数和设置。它包含了程序运行所需的各种选项和配

    2024年02月04日
    浏览(61)
  • find命令——根据路径和条件搜索指定文件

    find命令的功能是根据给定的路径和条件查找文件或目录,可以使用的参数很多,并且支持正则表达式,结合管道符后能够实现更加复杂的功能,是系统管理员和普通用户日常工作必须掌握的命令之一。 find命令是对磁盘文件系统进行搜索,因此在服务器负载较高时,不建议使

    2024年02月07日
    浏览(52)
  • unity,如何让人物随着鼠标滑动而转向?

    unity,如何让人物随着鼠标滑动而转向? 这段代码是一个基于Unity引擎实现玩家移动的脚本,主要作用如下: 定义并初始化变量: speed:玩家移动速度; movement:玩家的移动方向; playerAC:玩家的动画控制器; playerRigidbody:玩家的刚体组件; floorMask:用于射线检测的地板层

    2024年02月07日
    浏览(94)
  • Linux[find命令]-根据路径和条件搜索指定文件并删除

    find命令:用于根据给定的路径和条件查找相关文件或目录,参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能。 基本语法格式:find pathname -options 搜索内容 [其他选项] pathname:用来指定搜索路径。 options:用来指定搜索内容。 搜索内容:用来指定搜索

    2024年02月05日
    浏览(61)
  • UE4物体随着样条线(Spline)运动

    一定要经过起止点,若干个控制点用于控制曲线弯曲的方向,最终形成一条 光滑的曲线 。 由于贝塞尔曲线点太多了不好控制,一般每四个点做一次贝塞尔曲线。得到的若干段相邻贝塞尔曲线的连接点需要共线且距离相同,即为 C1连续 (一阶连续可导)。 得到数学表达式如

    2024年02月11日
    浏览(63)
  • 用vue写一个随着滚动高度 而高亮的效果

    分别在hbuilder中 和vscode中写一套代码 先 滑动高亮 上效果图

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包